Home > AS3 > [AS3] stage参照でnullになるときの対処

[AS3] stage参照でnullになるときの対処

新しく追加したムービークリップのstageプロパティを取得すると、nullが返ってくることがあります。

ちょっとはまったのでメモ。

まずはヘルプを見てみます。

表示オブジェクトのステージです。Flash アプリケーションには Stage オブジェクトが 1 つだけあります。たとえば、複数の表示オブジェクトを作成して表示リストにロードすることができます。その場合、(ロードされた SWF ファイルに表示オブジェクトが属する場合であっても) それぞれの表示オブジェクトの stage プロパティは、同じ Stage オブジェクトを参照します。

表示オブジェクトが表示リストに追加されていない場合、stage プロパティは null に設定されます。

なるほどicon:star-ani01[2]
表示リストに追加されてないとnullのようです。
つまり、addChildしないとだめってことですね。

んが、しかし

var mc:MovieClip = new MovieClip();
addChild( mc );
trace( mc.stage );


これでもnullが返ってきます!

そんなときはADDED_TO_STAGEイベント後に参照するといい感じです。

var mc:MovieClip = new MovieClip();
addChild( mc );
mc.addEventListener( Event.ADDED_TO_STAGE, function(){ trace( mc.stage );} );


addChildをしても即追加される訳じゃないみたいです

トラックバック : http://cocoasaurus.com/mt/mt-tb.cgi/192

コメント:0

コメント

Home > AS3 > [AS3] stage参照でnullになるときの対処

↑page top