estoy siguiendo un ejemplo y este es mi codigo
Código:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class Principal extends MovieClip
{
public static const STATE_INIT:int = 10;
public static const STATE_PLAY:int = 20;
public static const STATE_GAME_OVER:int = 30;
public var gameState:Number = 0;
public var clicks:Number = 0;
public function Principal()
{
addEventListener(Event.ENTER_FRAME, gameLoop);
gameState = STATE_INIT;
}
public function gameLoop(evt:Event):void
{
switch (gameState)
{
case STATE_INIT :
initGame();
break;
case STATE_PLAY :
playGame();
break;
case STATE_GAME_OVER :
gameOver();
break;
}
}
public function initGame():void
{
stage.addEventListener(MouseEvent.CLICK, onMouseClick);
clicks = 0;
gameState = STATE_PLAY;
}
public function playGame():void
{
if (clicks > 9)
{
gameState = STATE_GAME_OVER;
}
}
public function onMouseClick(evt:MouseEvent):void
{
clicks++;
trace(clicks);
}
public function gameOver():void
{
stage.removeEventListener(MouseEvent.CLICK, onMouseClick);
gameState = STATE_INIT;
trace("juego terminado");
}
}
}
lo unico que hace es que al hacer 10 clicks en el stage muestra un mensaje de juego terminado.
ahora viene mi duda:
Código:
public function initGame():void
{
stage.addEventListener(MouseEvent.CLICK, onMouseClick);
clicks = 0;
gameState = STATE_PLAY;
}
en esta función se pone la variable clicks en 0, menciono que hasta arriba he declarado la misma variable y la inicialice en 0
ahora que pasa si en esa funcion comento ese clicks = 0.
el juego funciona bien pero al terminar el juego, el evento enter_frame se sigue ejecutando, mostrandome:
juegos terminado
juegos terminado
juegos terminado
juegos terminado
una y otra vez y si descomento ese clicks = 0 cuando el juego termina solo me muestra una sola vez
juegos terminado y ya.
la pregunta es por que
espero me puedan ayudar