ムービークリップを張ってみる


S2使いにとって最大のビックリは、attachMovieがなくなったことだと思う。
じゃあ、どうアタッチするか?なんで変わったのか!?というお話。

スクリプトから張ってみよう


まぁ、とりあえずMC作って、スクリプトから張ってみよう。

  • 新規シンボルでMovieClipを作って、●を描く。
  • ライブラリから作ったMCのリンケージを開く。
  • export as actions scriptを選ぶ。

なんかいままでリンケージIDだった部分が、クラス名と、基底クラスみたいな2つになってると思う。
基底クラスの方は勝手にMovieClipが指定されてると思うので無視。
クラス名のところに "Maru" とか描いておこう。

で、メインのタイムラインの1行目に


var mc : MovieClip = new Maru();
this.addChild( mc );


で、表示されるはず。

new Maru()で、ライブラリのMaruクラスを設計図に、実際のアイテムを作り出して、addChild で、ムービーをアタッチしたわけです。今までリンケージだったものが、クラスになったけど概念的にはあまり変わらん感じ。
クラスってのは変数や関数等を1つにパッケージングしたモノを作るための「設計図」のことなんだよね。
マックのバリューパックのレシピや、熱海旅行ツアー企画書みたいなもん。クラス(バリューパックって定義とレシピ)があれば、 あとはそれを元に、何個でもバリューパックを生産できるわけですよ。で、new Maru()が作るパートで、addChild() で ステージに貼り付けてるわけです。

AS2とAS3の最大の違い


AS2とAS3の最大の違いは、ムービークリップの作成と、アタッチを2段階にわけたことだけど、これによって何がかわるのか。

作ったからといって、貼る必用はない作るだけで、画面に張らないということもできる。計算用、画像処理用にダミーに作って、表示しないとかも可能。

他のMCの子供に移動できる。attachMovieで一度はったものは削除しかできないが、addChildでは、親の変更が可能

var mc : MovieClip = new Maru();
myMovieClipA.addChild( mc );
myMovieClipB.addChild( mc );

とかやるとmyMovieClipAに張ってから、やっぱりmyMovieCLipBに張りなおすことが可能。
3Dやウィンドウみたいに、前後関係が複雑な場合は便利。

画面から消すけど、削除しないということもできる。今までの removeMovieClipで消すとMCは消滅したけど、今回の removeChild は、表示から外すだけなので mc自体は存在してる。あとで再利用とかできる。

var mc : MovieClip = new Maru();
addChild( mc );
removeChild ( mc );
trace( mc ); //表示からはずれたけど、MCは存在してる。
最終更新:2007年05月23日 13:35