我正在尝试在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,你能告诉我这里出了什么问题吗?
提前致谢并快乐编程!
答案 0 :(得分:0)
您可以使用以下方法扩展课程:
public class GameCore extennds EventDispatcher
并使用此代码
this.addEventListerner(Event.EnterFrame,gameloop)
也许可行
答案 1 :(得分:0)
好的,所以这可能是一个长镜头,但我认为您不必在其中放置(舞台)。您可以设置game.x和game.y以及其他一些变量,然后设置stage.addchild(game)。如果您想要该类型的多个对象,有时创建一个数组会有所帮助,但是还需要执行其他语义上的工作。
我知道这是一篇过时的文章,但希望可以对某人有所帮助。