子swfを消すときにEvent.UNLOADを忘れない。

2011.01.04 ActionScript3.0 

unload();
unloadAndStop();

子swfを消すときに親swfとかで上記みたいにunloadしてたんですが、
どうやらこれだと音とかEnterFrameとかが裏側で残ってるぽく。。

なんでunloadしたswfの音とかEnterFrameが呼ばれてるんだ?と
一瞬悩んだんですが、unloadを調べてみたらいつものごとく
feb19.jpさんのところへ行き着き、

「他のオブジェクトが参照している可能性があるため、子は必ずしも破棄されるとは限りません。
ただし、Loader オブジェクトの子ではなくなります。」

ほう。
で、unloadした時にloaderInfoでUNLOADイベントが取れるそうで、
これだ!と。

だからこれからは子swfとかのinit処理内に合わせて以下みたいに
delete処理も合わせて書いておこうというメモ書き。

loaderInfo.addEventListener(Event.UNLOAD, function(e:Event):void{
removeEventListener(Event.ENTER_FRAME, enterFrameAnimation);
loaderInfo.removeEventListener(Event.UNLOAD, arguments.callee );
});

393さんのところにも分かりやすい説明がありました。
いつもいつも勝手に勉強させてもらっております。ありがとうございます。m(_ _)m

これでとりあえず子swfから音が聞こえてきたり
EnterFrame回ってるとかっていう怪現象は収まりました。(自分が後片付けしてないだけ)

you

© rettuce.com