三个重点:状态循环、游戏频率、事件模型。
//状态循环
public function gameLoop(e:Event):void{
switch(gameState){
case STATE_INIT: initGame();
break;
case STATE_PLAY: playGame();
break;
case STATE_GAME_OVER: endGame();
break;
}
}
//游戏频率,注意ENTER_FRAME 关键是“帧频”
public function Game(){ //类Game的构造函数
addEventListener(Event.ENTER_FRAME,gameLoop);
gameState = STATE_INIT;
}
//事件模型
public function initGame():void{
stage.addEventListener(MouseEvent.CLICK,onMouseEventHandler);
clicks=0;
gameState = STATE_PLAY;
}
public function playGame(){
if(clicks>=10){
gameState = STATE_GAME_OVER;
}
}
public function onMouseEventHandler(e:MouseEvent){
clicks++;
}
完整的示例代码如下: