[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