parentの扱い

AS2.0からAS3.0の移行で感じた大きなギャップは、今のところコレが一番。

「parentの扱い」について

global変数がなくなったりroot変数の仕様が変わったりは耳にしていたので、予備知識のおかげで大した混乱もなかったものの、コイツにはマイッタ。


たとえば
「hoge_mc」の中に「inner_mc」を入れ子にして、「inner_mc」のフレームアクションに下記のスクリプトを書く

AS2.0の場合
/*inner_mc frame action  vr:AS2.0*/
_parent.gotoAndStop(2) ; //hoge_mcは2フレームに移動する


AS3.0の場合 その1
/*inner_mc frame action  vr:AS3.0*/
parent.gotoAndStop(2);        //コンパイルエラーになる
MovieClip(parent).gotoAndStop(2); //hoge_mcは2フレームに移動する


AS3.0の場合 その2
/*inner_mc frame action  vr:AS3.0*/
var parentMc:MovieClip= MovieClip(parent);
parentMc.gotoAndStop(2); //hoge_mcは2フレームに移動する


同様にparentの変数や関数にアクセスするときも
/*inner_mc frame action  vr:AS3.0*/
var parentMc:MovieClip= MovieClip(parent);
parentMc.foo_var;
parentMc.foo_func;


と言う具合に型キャストが必要になる訳だけど、その理由はparentの型がMovieClipではなくDisplayObjectContainerだから、だそうです。なにかしら重要な意味があってこうなったとは思うけれど、今の自分の理解じゃあ重要な何かがなんなのかよくわからん。そのうちわかるんだろうか。
とりあえずもう、スクリプト言語じゃあ無いよな、と思う。

ま、忘れはしないだろうから、いちいちメモを取る事も無いんだけど、後から読み返して「ああ、そんな事もあったなあ」と振り返ってみるためにメモ。

Trackback

http://memo.kappa-lab.com/mt-tb.cgi/60

Leave your comment :

(いままで、ここでコメントしたことがないときは、コメントを表示する前に承認が必要になることがあります。そのときはしばらくお待ちください。)




RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.