Flash / ActionScript プログラムに関する各種メモ書き

AS3で外部クラス(外部as)からrootを参照する

AS3でrootを参照するにはまず addChild を行って

var m = new Main();
addChild(m);

から

// root を参照
trace( MovieClip(root) );

とします。

例: Main.as

package {
    // Import
    import flash.display.*;
    public class Main extends MovieClip {
        public function Main():void {
            // ここではまだ root を参照できない
            // trace(MovieClip(root).hoge);
        }
        public function test():void {
            trace(MovieClip(root).hoge);
        }
    }
}

例:test.flaの1フレーム目のフレームアクション

var hoge:String = "aaaaaaaaaaaaaaaaaaaaaaa";
var m = new Main();
addChild(m);
m.test();
addChild を使わない方法 A
1. var m = new Main( MovieClip(root) );
または var m = new Main( this );
とする。
2.Main.as のコンストラクタで引数を受け取るようにする

これでコンストラクタでも root を参照できます。

addChild を使わない方法 B
1. ステージ上に空のmcを作成(名前を「空のmc」とする)
2.「ライブラリ」>「空のmc」を右クリックして「プロパティ」
3.「リンケージ」の
 ・ActionScript用に書き出しにチェック
 ・1フレーム目に書き出しにチェック
 ・クラス名を外部 .as のクラス(Main)を指定

これで root を参照できます。



関連エントリー

No.661
02/20 11:45

edit

ActionScript3.0