ActionScript3から始めた人はいいかもしれない。
しかし、それ以前をかじったことがある人は悩む。本当に悩む。
まぁ、以前のActionScriptが曖昧なところもやってくれたのが、おかしいのかもしれないが。
今回は、attachMovieとrootを。
廃止され、addChildになりました。既にattachMovie()を忘れつつあるが、addChild()では、オブジェクトをnewして、それをaddChild()。classならぱっとわかるが、FlashCS3で作ったシンボルは?
Flash CS3では、以下のサイトが非常にわかりやすい。
http://un-q.net/2007/12/actionscript3_attachmovie_as3.html
なるほど。
1.シンボルを作成
2.シンボルのプロパティを開く
3.リンケージの「ActionScriptに書き出し」をチェック。
4.その時のクラス名が、シンボルをもとに書き出されたクラス名。(CTmpとすると・・・)
var tmpObj: CTmp = new CTmp();
addChild( CTmp );
やってはいないが、そのシンボルが自分で書いたclassの派生にしていたら、基本クラスにそのクラスを書いて、4のところで自分のクラスを書く。てか、ここは public class CTmp extends CClassBaseってのをGUIで表現してるだけだな。
rootは、as2までなら_rootでいつでも参照できた。
as3では一応DisplayObject型にはなっているが、これだと_root.gotoAndPlay()や自分で作った関数にアクセスすることは出来ない。
MovieClip( root )でキャストすると出来る。
外部swfが一番問題。as2までは、_rootで、読み込み元のrootをさしていたが、as3からは、外部swf.rootは外部swf.rootで、呼び出し元のrootではない。
他にもやり方があるかもしれんが、外部swfを読み込んだ後、initリスナーでひっかけて、外部swfにrootを渡して解決。当然、外部swfには呼び出し元rootを持つ変数を置くが・・・
この記事が気に入ったりした方は、自分のブログを書くときに「下のURLをコピーして、自分のブログ投稿時のトラックバック欄にペースト」してください。つながります。
URL: