Estoy desarrollando un juego de disparos en flash, consta de un robot que gira en su propio eje, tengo los siguientes archivos
game.as
robot.as
mira.as
municion.as
game.as se encarga de controlar el juego, agregar los elementos, stop, continue, etc…
robot.as tiene las acciones de disparar y rotar
mira.as controla el movimiento de la mira del arma
municion.as es la clase que va atada a cada bala, la mueve y comprueba colisiones
Ahora bien, podría hacer los "loops y eventos" de 2 formas diferentes
1. hacerlos todos en game.as
Código :
addEventListener(Event.ENTER_FRAME, loopGame); addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
De esta primera forma tendría 1 solo ENTER_FRAME, MOUSE_MOVE y MOUSE_DOWN, y en cada uno colocaría todas las callbacks que disparan esos eventos, ejemplo.
Código :
private function mouseMoveHandler(e:MouseEvent) { this.myMira.move(e); this.myRobot.rotate(e); }
Código :
private function loopGame(e:Event):void { this.updateMuniciones(); //recorre todas las municiones, actualiza su posición y comprueba colisiones }
2. Hacerlo dentro de cada objeto
De esta forma tendría los listeners dentro de cada objeto del juego, por ejemplo
Robot.as tendría un MOUSE_MOVE propio para rotar
Código :
stage.addEventListener(MouseEvent.MOUSE_MOVE, rotate);
mira.as, tendría un MOUSE_MOVE propio para mover su posición
Código :
stage.addEventListener(MouseEvent.MOUSE_MOVE, mover);
dentro de cada bala tendría un ENTER_FRAME propio que cambiaría su posición actual y comprobaría colisiones
Código :
this.addEventListener(Event.ENTER_FRAME, updateBala);
A nivel de practicidad y rendimiento ¿Cuál de los 2 métodos es el correcto y porque?
Si alguien conoce un manual o libro de buenas practicas en o patrones de diseño AS le agradeceria el dato

Espero haberme explicado bien, gracias