我应该在哪里为我的flash游戏循环编写代码?

我应该在哪里为我的flash游戏循环编写代码?,flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,我正在从Java过渡到Flash/Actionscript,我很难找到为我的Flash游戏循环(或引擎)编写代码的地方,因为Flash具有不同于Java的“框架” 即使游戏中有类似的游戏菜单,我也能将循环放在Document类中吗?我还没有找到一种方法,在flash应用程序启动时不让它一直运行的情况下,将它放在那里 或者我应该让游戏循环调用每一帧?例如,第4帧将是级别1,因此将在那里调用引擎。第5帧将是2级,我将在那里调用游戏引擎的另一个实例。这样做可能吗 我只是有一个困难的时间由于“帧”。那么

我正在从Java过渡到Flash/Actionscript,我很难找到为我的Flash游戏循环(或引擎)编写代码的地方,因为Flash具有不同于Java的“框架”

即使游戏中有类似的游戏菜单,我也能将循环放在Document类中吗?我还没有找到一种方法,在flash应用程序启动时不让它一直运行的情况下,将它放在那里

或者我应该让游戏循环调用每一帧?例如,第4帧将是级别1,因此将在那里调用引擎。第5帧将是2级,我将在那里调用游戏引擎的另一个实例。这样做可能吗

我只是有一个困难的时间由于“帧”。那么,把游戏循环放在哪里最好呢


谢谢大家!

如果您是一名认真的Java工程师,您将很快学会避免框架陷阱。在文档类中,您可以通过侦听事件来创建主游戏循环。输入\u FRAME:

package
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class DocumentClass extends Sprite
    {

        public function DocumentClass():void
        {
            init();
        }

        private function init():void
        {
            addEventListener(Event.ENTER_FRAME, iterate);
        }

        private function iterate(event:Event):void
        {
            // loop here
        }

    }
}
您可以在删除事件侦听器时停止循环

对于更复杂的游戏,人们通常需要创建多个输入帧侦听器。在这种情况下,通常更有效的方法是使用“滴答器”或其他设备,以尽量减少玩家的事件构造数量

希望这有帮助,
Alec

如果您是一名认真的Java工程师,您将很快学会避免框架陷阱。在文档类中,您可以通过侦听事件来创建主游戏循环。输入\u FRAME:

package
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class DocumentClass extends Sprite
    {

        public function DocumentClass():void
        {
            init();
        }

        private function init():void
        {
            addEventListener(Event.ENTER_FRAME, iterate);
        }

        private function iterate(event:Event):void
        {
            // loop here
        }

    }
}
您可以在删除事件侦听器时停止循环

对于更复杂的游戏,人们通常需要创建多个输入帧侦听器。在这种情况下,通常更有效的方法是使用“滴答器”或其他设备,以尽量减少玩家的事件构造数量

希望这有帮助,
Alec

您也可以使用计时器,优点是您可以为电影设置较低的帧率和较高的计时器间隔,然后如果您检测到需要重画屏幕的某些部分,可以调用e.updateAfterEvent()或忽略它。您可以通过这种方式获得性能,尽管您可能不需要它的好处,并且会使游戏变得更复杂。

您也可以使用计时器,其优点是您可以为电影设置较低的帧速率和较高的计时器间隔,然后如果您检测到需要重新绘制屏幕的某些部分,则可以调用e.updateAfterEvent()或者忽略它。您将通过这种方式获得性能,尽管您可能不需要它的好处,并且会使您的游戏更加复杂

例如,第4帧将是级别1,因此将在那里调用引擎。第5帧将是2级,我将在那里调用游戏引擎的另一个实例

这是可能的,但我认为,特别是如果您来自Java,您应该尽量避免将代码放在Flash的框架上,甚至将Flash用作开发环境。 它确实不适合于严肃的编程。
FlashBuilder对开发人员更加友好,并且基于Eclipse可能会让您更加熟悉

在Flash中以帧形式在时间轴上编写代码非常麻烦,您将很难调试,甚至很难找到*#@的位置?您的代码是在您需要更改某些内容时生成的

例如,第4帧将是级别1,因此将在那里调用引擎。第5帧将是2级,我将在那里调用游戏引擎的另一个实例

这是可能的,但我认为,特别是如果您来自Java,您应该尽量避免将代码放在Flash的框架上,甚至将Flash用作开发环境。 它确实不适合于严肃的编程。
FlashBuilder对开发人员更加友好,并且基于Eclipse可能会让您更加熟悉

在Flash中以帧形式在时间轴上编写代码非常麻烦,您将很难调试,甚至很难找到*#@的位置?您的代码是在您需要更改某些内容时生成的