この記事と、同名タイトルの記事があるのですが、
[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++
				}
			}
		}		
			
	}

}