在Flash中创建新舞台



我一直在学习flash游戏开发的教程。其中一些提到创建一个新阶段而不是默认阶段,但没有详细说明它们或如何创建它们。

教程中的一个示例。

"Contents层存储flash游戏将要发生的mcGameStage。注意到我们正在使用这个叫做mcGameStage的单独的MovieClip来让所有的动作发生。在某种程度上,你将在我们需要滚动内容或完全删除游戏元素时看到其好处。这比你把所有东西都放到舞台上要好。"

我不太清楚这是怎么回事,希望你能稍微澄清一下。

教程建议你将游戏内容添加到mcGameStage实例中。

默认情况下,你总是在应用程序中拥有主舞台,然后你将mcGameStage添加到主舞台,这将是一个容纳所有游戏显示对象的容器。然后向mcGameStage添加视觉元素。教程说,如果你将它们全部添加到mcGameStage容器中,操作它们会容易得多。

除此之外,你永远不能实际创建另一个"Stage",而不是默认的,Stage是唯一的,不能这样操作。

如果要使用一个主文档类,实际情况就是这样。你的主类是舞台的子类。

一种开始的方法,您可以创建一个基本的SpriteMovieClip对象。精灵是一个非常基本的容器,你可以用它来满足你的基本需求,包括分层和交互。Sprite和MovieClip的区别在于Sprite没有时间轴。

var gameContainer:Sprite = new Sprite()
stage.addChild(gameContainer:Sprite)

然后你可以添加任何游戏元素到你的gameContainer。

但是,我不想让你感到困惑。在学习的这个阶段,直接在舞台上工作并没有什么本质上的错误。当您尝试动态加载这个.swfs到您的应用程序时,问题就出现了。

另一种方法是使用flash文件的文档类。假设您正在使用Flash IDE,只需在属性面板中创建一个自定义文档类并进行操作。这个类会自动添加到舞台上。单击Class:字段旁边的铅笔图标,为文档类选择一个名称(我们将其命名为game),并创建它。

你最终会得到像这样的东西:

package  {
    import flash.display.MovieClip;
    public class Game extends MovieClip {
        public function Game() {
            //Things happen
        }
    }
}

最新更新