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