So löschen Sie in AS3 alle Ereignis-Listener auf einmal

Ich mache ein kleines Spiel in as3.

Das Spiel enthält 10 Levels.

Wenn ich eine Ebene betrete, ist alles in Ordnung. Aber wenn ich die zweite Ebene (Frame) betrete, arbeiten die Event-Listener des ersten Frames immer noch und erhalten eine Warnung mit der Aufschrift "Kein Zugriff auf ein Objekt mit null Objektbezug". Dies liegt daran, dass ich jedes Objekt der ersten Ebene lösche und die Objekte aus Stufe 2 hinzufüge.

Ich habe versucht, removeEventListeners zu verwenden, aber es funktioniert nicht, da ENTER_FRAME-Listener nach dem Entfernen der Ereignis-Listener noch einmal funktionieren.

Ich habe versucht, verschiedene Frames für verschiedene Ebenen zu verwenden, aber es funktioniert nicht. Ich habe auch versucht, 1 Frmae für alle 10 Frames zu verwenden, aber ich erhalte viele Warnungen und der Flash Loader ist überlastet.

Wie kann ich durch Levels wechseln (vor und zurück)? Danke im Voraus.

  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);
        }
    }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage