Código:
lo unico que hace es que al hacer 10 clicks en el stage muestra un mensaje de juego terminado.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"); } } }
ahora viene mi duda:
Código:
en esta función se pone la variable clicks en 0, menciono que hasta arriba he declarado la misma variable y la inicialice en 0public function initGame():void { stage.addEventListener(MouseEvent.CLICK, onMouseClick); clicks = 0; gameState = STATE_PLAY; }
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