getDefinitionByName的用处是可以通过字符串映射的取到相应的类。
但是如果你在一个类中,embed一个图片,将这个图片声明为一个class 。这样用getDefinitionByName来调用,就会出现“未定义错误”。
package
{
import flash.display.Bitmap;
import flash.display.MovieClip;
import flash.utils.getDefinitionByName;
/**
* ...
* @author FireYang
*/
public class embedTest extends MovieClip
{
[Embed(source="tile1.png")]
private var tile1:Class;
public function embedTest()
{
var string:String = "embedTest_tile1";//所在类名+"_"+embed的类名
var c:Class = getDefinitionByName(string) as Class;
var b:Bitmap = new c();
b.x = 100;
b.y = 100;
trace(b);
addChild(b);
}
}
}
{
import flash.display.Bitmap;
import flash.display.MovieClip;
import flash.utils.getDefinitionByName;
/**
* ...
* @author FireYang
*/
public class embedTest extends MovieClip
{
[Embed(source="tile1.png")]
private var tile1:Class;
public function embedTest()
{
var string:String = "embedTest_tile1";//所在类名+"_"+embed的类名
var c:Class = getDefinitionByName(string) as Class;
var b:Bitmap = new c();
b.x = 100;
b.y = 100;
trace(b);
addChild(b);
}
}
}