AS3 - 在外部SWF中实例化对象时的ReferenceError

时间:2014-09-30 19:44:42

标签: actionscript-3 flash-builder flash referenceerror

我有一个加载另一个SWF的SWF。在外部swf中,我试图实例化第一个SWF中定义的类的对象。

我使用的是Flash Builder,每个SWF都是一个不同的项目。外部swf有一个配置链接到主swf的构建路径,因此外部swf可以访问主swf的所有类。

问题在于,当我尝试实例化主swf中定义的一个类时,它会给我一个ReferenceError:

  

ReferenceError:错误#1065:变量GraphicRadioButton不是   定义

当主swf加载第二个swf时,它加载很好,我可以与外部swf中的按钮和东西进行交互。但是,当我单击一个导致此GraphicRadioButton类的实例化的按钮时,它会给我这个运行时错误。 以下是引发错误的确切代码行(不要介意params,我相信它们与此问题无关):

maleGenderButton = new GraphicRadioButton(genderButtonGroup, nameInputRightBorder.x + nameInputRightBorder.width + 50,nameInputRightBorder.y, LoginAssets.MALE_GENDER, LoginAssets.MALE_GENDER_OVER, LoginAssets.MALE_GENDER_DOWN);

这个错误发生在一些其他类被实例化后,而这些其他类也从主swf的项目链接,所以问题特别是这个GraphicRadioButton类。

最后一个重要信息。当我自己运行exernal swf时,错误不会被抛出,它一直运行良好。只有当swf作为从另一个swf加载的外部swf运行时,才会发生错误,使用Loader,URLRequest和这些东西。

2 个答案:

答案 0 :(得分:0)

@felipe您是否正确导入了类包?

确保在创建对象之前正确导入GraphicRadioButton类。

请发布更多代码,以便了解您如何构建应用程序。

答案 1 :(得分:0)

我测试了更多东西,发现实际上问题出在getQualifiedClassName()上。 在我正在构建的那个类上,它的一个超类在它的构造函数

上有这一行
_class = Class(getDefinitionByName(getQualifiedClassName(this)));

我首先需要说的是,我已经将一堆类从一个项目重新定位到另一个项目(其中一个类是GraphicRadioButton),而另一个项目也链接在项目中抛出错误。一旦我这样做,GraphicRadioButton就不再抛出任何错误了,但现在另一个类抛出了。

这个名为ComposedTextButton的类,但是我将该类重命名为TextComposedButton(使用flash builder中的重命名工具更新其所有引用),但错误一直在说......

  

ReferenceError:错误#1065:变量ComposedTextButton不是   定义

...即使我已将名称更改为TextComposedButton。因此,必须在我的某个项目中更新某些内容,这使得Flash无法理解该类已被更改或移动,或类似的内容。