[AS]Embedした複数の画像(クラス)を連番(文字列)で参照したい場合の方法(ASC2.0の場合)
この記事と、同名タイトルの記事があるのですが、
[AS]Embedした複数の画像(クラス)を連番(文字列)で参照したい場合の方法
先日、ASC2.0でのコンパイルでは、上記記事のgetDefinitionByName()の例がランタイムエラー(クラスが見つからない)になってしまうとのお話を聞きました。
そこで偉い人(akb7さん)からASC2.0でのやり方を聞きましたのでメモしておきます。
具体的にはクラス名の命名ルールがASC2.0で変更になったようで、以前のような参照の仕方ができなくなった模様。
package { import flash.display.Bitmap; import flash.display.Sprite; /** * ... * @author 393 */ public class Main3 extends Sprite { [Embed(source="assets/foo0.png")] private var AImage0:Class; [Embed(source="assets/foo1.png")] private var AImage1:Class; [Embed(source="assets/foo2.png")] private var AImage2:Class; public function Main3() { super(); //FP11.3以上のメソッドを利用:applicationDomain.getQualifiedDefinitionNames(); embedFunc(); } public function embedFunc():void { var classNames:Vector.<String> = loaderInfo.applicationDomain.getQualifiedDefinitionNames(); var count:int = 0; for each (var className:String in classNames) { trace(className); //↓trace結果はこんな感じの名前になってる //foo0_png$e7be431d52b236ccd82cd15de1a20fab1328790674 if (className.indexOf("foo") == 0) { var clazz:Class = loaderInfo.applicationDomain.getDefinition(className) as Class; addChild(new clazz()).x = 100 * count; count++ } } } } }Tweet