■プロフィール

クリエイトウェーブスタッフ

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

■最近の記事
■カテゴリー
■twitter

■QRコード

QR

■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブロとも申請フォーム
■twitter_follow

■ブログ内検索

■RSSフィード
■リンク
getDefinitionByNameに悩む・・・
お疲れ様です。
フッチーです。

今日は、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 - ジャンル:コンピュータ

カテゴリー:Flash | TM(0) | CM(0)
次のページ

FC2Ad