2011.06.25 | 

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ってところが地雷原な感じです。