我需要能够将我的库中的对象插入舞台。它们都是不同的.jpg,已经正确导入并具有AS链接名称,如GIS_1 GIS_2等。
我正在尝试运行一个函数,根据外部变量一次导入一个。
示例:
var GIS_Image = new GIS_#(); //the "#" needs to change as depending on a counter
addChild(GIS_Image);
但我需要的是能够将名称“GIS_1”作为一个变量,所以我可以拥有一些东西,允许它在每次我需要一张新图片时改变。我的第一个想法是按照以下方式制作一个字符串:
var counter:int = 2;
var test:String = ("GIS_"+count);
var circle = new test();
但它不会工作,因为它正在寻找对象名称测试,而不是访问文本组成的字符串。
任何想法?
谢谢!
答案 0 :(得分:1)
结帐getDefinitionByName
。这允许您创建由String标识的给定类的实例。
package {
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
public class GetDefinitionByNameExample extends Sprite {
private var bgColor:uint = 0xFFCC00;
private var size:uint = 80;
public function GetDefinitionByNameExample() {
var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
var instance:Object = new ClassReference();
instance.graphics.beginFill(bgColor);
instance.graphics.drawRect(0, 0, size, size);
instance.graphics.endFill();
addChild(DisplayObject(instance));
}
}
}
因此,您可以传递符号的名称并按需创建它的新实例。