[AS]ドキュメントクラスでのthisについて
ドキュメントクラスは、MovieClipかSpriteを継承していないといけない。
そのためどっちを継承したかでthisの性質が変わってくる模様。
以下、Spriteを継承しててはまったこと。
ステージにインスタンス名myMcのムービークリップを配置。
ドキュメントクラスをMain.as
//Main.as public class Main extends Sprite { public function Main() { var main2:Main2 = new Main2(this); } }
//Main2.asのコンストラクタ public function Main2(container) { var container2:Sprite = container trace(container2.myMc.x); }
これだと、container2にmyMcなんてプロパティ無いよと起こられる。
おそらくSpriteはDynamicじゃないからってことかな?
でも、↓こう書けばSprite継承でも参照できるみたい。
trace(container2[“myMc”].x);
まぁcontainer2:Spriteとせずに、Mainとすれば問題ないけど。
最初からMainはMovieClipを継承してれば何の問題もない
//Main.as public class Main extends MovieClip{ public function Main() { var main2:Main2 = new Main2(this); } }
//Main2.asのコンストラクタ public function Main2(container) { var container2:MovieClip= container trace(container2.myMc.x); }
結論としては、ドキュメントクラスはMovieClipを継承しといた方が無難・・・
Tweet