私はas3で小さなゲームを作っています。AS3ですべてのイベントリスナーを一度に削除する方法
ゲームには10レベルが含まれています。
私は1つのレベルを入力するとすべてが問題ありません。しかし、私が2番目のレベル(フレーム)を入力すると、最初のフレームからのイベントリスナーはまだ動作しています。「null objct参照のオブジェクトにアクセスできない」という警告が表示されます。これは、最初のレベルのすべてのオブジェクトを削除し、ステージ2のオブジェクトを追加するためです。
removeEventListenersを使用しようとしましたが、機能しません。原因:ENTER_FRAMEリスナーがイベントを削除したリスナー。
さまざまなレベルのフレームを使用しようとしましたが、動作しません。また、私はすべての10フレームの1つのfrmaeを使用してみましたが、私は多くの警告を受け取り、フラッシュローダーは過負荷です。
どのようにレベルを前後に切り替えることができますか?前もって感謝します。
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);
}
}
できません。イベント(**非同期**)であなたを気にしたくない場合は、[AS3 Signals](https://github.com/robertpenner/as3-signals)(** synchronous **)を試してみてください。 – Florent
enterframeループにイベントリスナーを追加しないでください... – Kodiak
レベルが渡されているかどうかを確認し、ゲームの法則が壊れていないことを確認するために、ENTER_FRAMEを追加する必要があります。 ウィックが正しいと思う必要はありません(EventListenersを削除してください)。限り正常に動作し、私は任意のアイデアを受け入れるでしょう – Stefan4024