すごくハマった。半日ハマったのでメモ。
困ったら、とりあえずMovieClip(root) に。
root.my_mc.play(); ↓ MovieClip(root).my_mc.play();
強引にムービークリップ型にキャスト(型変換)しないとダメっぽい。
MovieClip(root) よりも MovieClip(stage.getChildAt(0)) の方が正しいっぽい。
でもキャストしないとムービークリップを参照指定できないのが釈然としない。
このやり方が正しいんだろうか?
AS2.0の感覚がしみ込んでるので、とても痛い目に遭います。
以下、ドキュメントクラスから読み込んだ外部asからの参照テストのメモ。
[code]
package {
public class Main extends MovieClip {
public function Main():void {
trace(“this= “+ this);
trace(“this.root= “+ this.root);
trace(“this.parent= “+ this.parent);
trace(“parent = “+ parent);
trace(“stage = “+ stage);
trace(“stage.root = “+ stage.root);
//trace(“parent.stage.root = “+ parent.stage.root); //エラー
trace(“this.stage.root = “+ this.stage.root);
trace(“MovieClip(root).pageAll = “+ MovieClip(root).pageAll);
trace(“MovieClip(stage.getChildAt(0)) = “+ MovieClip(stage.getChildAt(0)));
//trace(“this.stage.root.pageAll = “+ this.stage.root.pageAll); //エラー
}
}
}
[/code]
出力結果メモ
this= [object Main] this.root= [object Main] this.parent= [object Stage] parent = [object Stage] stage = [object Stage] stage.root = [object Stage] this.stage.root = [object Stage] MovieClip(root).pageAll = [object pageAll_1] MovieClip(stage.getChildAt(0)) = [object Main]
コメント