AS3 - Event.ENTER_FRAME - 错误1119

时间:2017-06-01 09:55:43

标签: actionscript-3 flash

我正在尝试在Adobe Animate和AS3中开发一个简单的游戏。

我有一个类GameCore,我想添加一个ENTER_FRAME事件监听器。

package as3 {

import flash.display.Stage;
import flash.display.MovieClip;
import flash.events.*;
import as3.movieclips.RocketShip;


public class GameCore {

    var rocket:RocketShip;
    var stage:Stage;
    var timeline:MovieClip;
    var i:int;

    public function GameCore( stage:Stage ) {
        // constructor code
        this.rocket = new RocketShip();
        this.stage = stage;
        this.timeline = this.stage as MovieClip;
        this.i = 0;
        this.stage.addEventListener(Event.ENTER_FRAME, gameLoop);
    }

    public function goToMainScreen():void {
        this.timeline.goToAndStop("MainScreen");
    }

    public function goToGameScreen():void {
        this.timeline.goToAndStop("GameScreen");
    }

    public function startGameLoop():void {

    }

    public function gameLoop(event:Event){
        trace(this.i);
        this.i += 1;
    }

}

}

当我尝试在时间轴框架上执行代码时:

  import as3.GameCore;
  var game:GameCore = new GameCore(stage);

它抛出错误说:

 Can´t access probably undefined property ENTER_FRAME referenced with static type Class
我之前做过这个,但我几年没碰过as3,你能告诉我这里出了什么问题吗?

提前致谢并快乐编程!

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法扩展课程:

public class GameCore extennds EventDispatcher 

并使用此代码

this.addEventListerner(Event.EnterFrame,gameloop)

也许可行

答案 1 :(得分:0)

好的,所以这可能是一个长镜头,但我认为您不必在其中放置(舞台)。您可以设置game.x和game.y以及其他一些变量,然后设置stage.addchild(game)。如果您想要该类型的多个对象,有时创建一个数组会有所帮助,但是还需要执行其他语义上的工作。

我知道这是一篇过时的文章,但希望可以对某人有所帮助。