Actionscript 3 动态类初始化AS3
我试图基于字符串和数字的串联来初始化一个类。 我所有的课都是公开的 这是我的代码:Actionscript 3 动态类初始化AS3,actionscript-3,Actionscript 3,我试图基于字符串和数字的串联来初始化一个类。 我所有的课都是公开的 这是我的代码: public function setCurrentPath(pathNumber:String) { var pth_class:Class = getDefinitionByName('Pth'+pathNumber) as Class; var pth:MovieClip = new pth_class(); addChild(pth)
public function setCurrentPath(pathNumber:String)
{
var pth_class:Class = getDefinitionByName('Pth'+pathNumber) as Class;
var pth:MovieClip = new pth_class();
addChild(pth)
pth.getXY();
}
所以我得到了错误#1065
有什么帮助吗
是的,我的类文件导入flash.utils.*您的pth_类变量为空吗 如果是这样,有几个原因可能是这样的: 1) 您尚未输入正确的类的完全限定类名。例如com.myClasses.Pth1 或 (二) 如果像这样动态地实例化类,并且没有其他对该类的“常规”引用(例如blah=new Pth1()),那么“Pth1”类将不会包含在编译过程中 为了解决这个问题,我认为您可以向编译器提供参数,迫使它编译这些类,或者您可以在现有代码中手动包含对这些类的引用:
p1:Pth1;
p2:Pth2;
我想我在'var pth_class:class=getDefinitionByName('pth'+pathNumber)作为class;'对所有问题都是如果我跟踪(“Pth”+路径号)我得到“Pth1”,它是一个字符串而不是一个类如果我使用跟踪(getDefinitionByName(“Pth1”))我得到“Pth1”类。如果我使用trace(getDefinitionByName(“Pth”+路径号)),我会得到错误。我正在将字符串“1”传递给pathNumber。我知道了参数必须是数字而不是字符串。因此,我将“1”传递给pathNumber(一个字符串),所以我将其转换为number,它可以工作:)“Pth”+pathNumber应该是相同的,无论pathNumber是“1”(字符串)还是1(int)。