投稿日:2011-04-21 Thu
お疲れ様です。フッチーです。
今日は、getDefinitionByNameにはまりました。
調べてみるとハマッてる人は、いっぱいいるみたいだけど、自分のはまりにあてはまるのかな・・・
とりあえず判ったのでメモ。
getDefinitionByNameは、文字列をクラス名としてnewする時に便利です。
例えば、ループで連番のクラス作らないといけない時や、XMLでリンケージ名渡ってきてそのまま newかけるときとか・・
例えば
var testClass:Class=getDefinitionByName("リンケージ名") as Class;
var _mc:MovieClip = new testClass();
こんな感じです。
今はCS5とかじゃなく、FlashDevelopでFlexSDKを使った、ActionScriptプロジェクトを作業してるんですが
[Embed(source = 'test_1.png')]private var test_1:Class;
[Embed(source = 'test_2.png')]private var test_2:Class;
[Embed(source = 'test_3.png')]private var test_3:Class;
このあと10くらいつづく・・
でこの後文字列で生成するのに、どうすればいいんだと・・
で、
i に 1という数字が入ってるとして
var testClass:Class = getDefinitionByName("test_" + i) as Class;
var testImage:Bitmap = new testClass();
とかやってみたんですが、test_1は定義されてない とかエラーが出てしまって・・・
悪戦苦闘しました・・・
答えは
var testImage:Bitmap = new this["test_" + i] as Bitmap;
だった・・・・ガック><
getDefinitionByNameは関係なかった・・・
疲れました。
テーマ:FLASH DEVELOP - ジャンル:コンピュータ
△ PAGE UP