ADDED_TO_STAGEイベントは、DisplayObject(またはそれ自体を含むツリー)がステージに追加されると、 DisplayObjectに対して送信されます
つまり、ドキュメントクラスにこのリスナーを登録した場合、自分自身がステージに追加されると、ドキュメントクラスに対して送信されるので、ステージが参照できるということ。
ドキュメントクラスはステージの子であるようなので、ステージには直接配置せず、ドキュメントクラスないし、その子のDisplayObjectに追加してあげるのが理想か。
ドキュメントクラスがステージに配置されるのは最初だけ。 ドキュメントクラスはステージオブジェクトの参照を持っておくほうが無難。 addToStage イベントが発行されるのは、リスナーを登録したクラスのコンストラクタが終わってから。
Loader クラスで他の swf を読み込んでも、 stage は共通。 Loader クラスで他の swf を読み込んだとき、読み込み元の DisplayObject がstage の子なら、Loader クラスインスタンスを DisplayObject に addChild() した時に、addToStage イベントが発行される(はず)。
Stage にはドキュメントクラスが子として配置されている。Stage 以下の DisplayObject を全て削除するということは、ドキュメントクラスのインスタンスも、削除されてしまう。
DisplayObject は、直接 Stage の子として扱わないほうがいい、と思う。たぶん。 配置する DisplayObject はあくまでドキュメントクラスの子として、もしくはそれが持つ DisplayObject の子として定義するのが自然だと、今の段階の私は思った。
0 件のコメント:
コメントを投稿