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)。