Jul 06

as3 メモAttachMovie=>addChildやroot

actionscript3 コメントはページの下に

ActionScript3から始めた人はいいかもしれない。
しかし、それ以前をかじったことがある人は悩む。本当に悩む。

まぁ、以前のActionScriptが曖昧なところもやってくれたのが、おかしいのかもしれないが。
今回は、attachMovieとrootを。

AttachMovie=>addChild

廃止され、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について

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を持つ変数を置くが・・・

前後の記事

関連した記事

トラックバック&Pingback

この記事が気に入ったりした方は、自分のブログを書くときに「下のURLをコピーして、自分のブログ投稿時のトラックバック欄にペースト」してください。つながります。
URL:

コメント ( 0 )

コメント記入欄

Copyright(c) 小山太郎.com All rights reserved.