stage, rootの覚書 : ActionScript3

Pocket

表示リストに追加していないオブジェクトはstage,rootを参照できない。

ドキュメントサイズ
550×400
ライブラリ
outer クラス名 Outer
inner クラス名 Inner

var outer:Outer = new Outer();
var inner:Inner = new Inner();
outer.x = 100;
outer.y = 100;
inner.x = 50;
inner.y = 50;
trace(outer.root); /* null */
trace(inner.root); /* null */
trace(outer.stage); /* null */
trace(inner.stage); /* null */
trace(outer.stage.stageWidth); /* TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 */
trace(inner.stage.stageWidth); /* TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 */
// 表示リストに追加するとstage,rootを参照できる
addChild(outer);
outer.addChild(inner);
trace(outer.root); /* [object MainTimeline] */
trace(inner.root); /* [object MainTimeline] */
trace(outer.stage); /* [object Stage] */
trace(inner.stage); /* [object Stage] */
trace(outer.stage.stageWidth); /* 550 */
trace(inner.stage.stageWidth); /* 550 */

表示リストに追加されたオブジェクトのstage,rootプロパティは常に同じものを参照。
outer, innerのタイムラインにそれぞれ下記のスクリプトを記述。

trace(root); /* [object MainTimeline] */
trace(stage); /* [object Stage] */
trace(stage.stageWidth); /* 550 */

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。