2011.06.25 | mucho
Event.ADDED_TO_STAGEのバグ?というメモを前にしたムーチョです。こんにちは。
暑くて脳細胞が熱暴走しそうですね。というかしてる気がします。
そんな中、ニューロンがヒートアップなことがあったのでメモ。
A:外部SWFをあらかじめ読み込んでおいて、ステージにaddChildしない。
B:Event.ADDED_TO_STAGEを設定したDisplayObjectをaddChildする。
class b extends MovieClip{ private var a:Loader; public function b () { addEventListener(Event.ADDED_TO_STAGE, onAdded); } private function onAdded(e:Event) { addChild(a.content); } }
BをステージにaddChildしたときには、当然Event.ADDED_TO_STAGEが発生するんですが、
Bの中にAをaddChildしても、 BでEvent.ADDED_TO_STAGEが発生するんです。
上のようなソースだと
onAddedでaを呼び出してaddChild
↓
Event.ADDED_TO_STAGEが発生
↓
onAddedでaを(以下省略
という現象になります。
さらに不思議なのが無限ループにはならず、ループは1度だけで終了します。
前回と同じく外部SWFってところが地雷原な感じです。