AS3.0でAS2.0の[_root]指定のメモ

すごくハマった。半日ハマったのでメモ。

困ったら、とりあえず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]
  • URLをコピーしました!

この記事を書いた人

どうでもいいことばかりです

コメント

コメントする