Estoy haciendo un pequeño juego en as3.Cómo eliminar todos los detectores de eventos a la vez en AS3
El juego contiene 10 niveles.
Cuando ingreso 1 nivel todo está bien. Pero cuando ingreso al segundo nivel (cuadro), los oyentes del evento del primer cuadro siguen funcionando y recibe una advertencia que dice 'No se puede acceder a un objeto de referencia de objeto nulo'. Esto se debe a eliminar todos los objetos del primer nivel y agregar los objetos de la etapa 2.
He intentado utilizar removeEventListeners, pero no funciona, porque los oyentes de ENTER_FRAME funcionan una vez más después de eliminar el evento Oyentes.
He intentado usar diferentes cuadros para diferentes niveles, pero no funciona. También intenté usar 1 frmae para los 10 fotogramas, pero recibí muchas advertencias y Flash Loader está sobrecargado.
¿Cómo puedo cambiar los niveles (hacia adelante y hacia atrás)? Gracias por adelantado.
addEventListener(Event.ENTER_FRAME, subtracting2);
arrListeners.pop(); // poping it out of the array because it will be deleted after the count reaches 0
function subtracting2 (e:Event):void
{
count--;
var FAcoef:Number = count/30; //
FadeAway.alpha = FAcoef; // Some effect like FadeAway
setChildIndex(FadeAway, numChildren - 1); //
if(count == 0)
{
setChildIndex(FadeAway, 0);
removeEventListener(Event.ENTER_FRAME, subtracting2);
}
}
No puedes. Si no desea molestarlo con eventos (** asíncrono **), intente con [Señales AS3] (https://github.com/robertpenner/as3-signals) (** sincrónico **). – Florent
Quizás no deba agregar escuchas de eventos en un bucle de enterframe ... – Kodiak
Tengo que agregar ENTER_FRAME para verificar si se pasa el nivel y para asegurarme de que las leyes del juego no estén rotas. No tiene que ser mi idea lo que es correcto (con remove EventListeners). Mientras funcione bien, aceptaré cualquier idea – Stefan4024