プライベートワークス
2008年07月23日

ActionScript3 ライブラリから動的にMovieClipを配置する方法

ActionScript2からActionScript3になって変わったことは多々ありますが、というか、根本的に別物になったのですが、ライブラリからActionScriptで動的にインスタンスを配置するやりかたが、なかなかわからず、困っていたました。

やっと、その方法がわかったのでメモしておきます。
ActionScript2では、MovieClipの識別子を設定して、attachMovieすれば大丈夫でした。
ActionScript3では、MovieClipのリンケージから、クラスの欄にクラス名(たとえば、testMC)を入れて、

//フレームアクション
var tempInstance:MovieClip = new testMC();
addChild(tempInstance);

*tempInstanceは任意の名前

と書けば、ステージにtestMCが配置されます。

また、文字列(配列など)から、複数MovieClipをステージに配置すやり方もよくやるのですが、

//フレームアクション
var tempName:String = "testMC";
var tempClass:Class = Class(getDefinitionByName(tempName));
var tempInstance2:MovieClip = new tempClass();
addChild(tempInstance2);

flash.utils.getDefinitionByName()関数を使用してやればできます。

getDefinitionByName()関数は、引数に文字列をいれると、クラスの参照がObject型で返ります。
返ってきたクラスの参照をClassにキャストしてやり、そこ(tempClass)からインスタンスを生成して、addChildしてやればOKです。

投稿者 Penta : 2008年07月23日 14:06

コメント





保存しますか?


MENU
Copyright (c) Penta Creation All rights reserved.