2014-09-30 69 views
1

我有一个加载另一个SWF的SWF。在外部swf中,我试图实例化一个在第一个SWF中定义的类的对象。AS3 - 在外部SWF中实例化对象时引用错误

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

的问题是,当我尝试实例化主SWF中定义的类之一,它给我的ReferenceError:

ReferenceError: Error #1065: Variable GraphicRadioButton is not defined.

当主SWF文件加载第二个SWF文件,它加载罚款,并且我可以与来自外部swf的按钮和内容进行交互。但是当我点击一个导致这个GraphicRadioButton类实例化的按钮时,它给了我这个运行时错误。 下面是引发错误的准确代码行(不介意参数,可以相信,他们什么都没有做这个问题):

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

和其他一些类instantiaded后会发生这种错误,而这些其他类也是从主swf项目链接的,所以问题在于此GraphicRadioButton类。

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

+0

您是否对所有课程使用相同的包?如果不是,则包括所需的每个包。 请提供ZIP文件或代码,以便我可以了解您用于实现您的功能的流程。 – 2014-10-01 11:00:49

+0

我甚至可以帮助您使用TeamViewer。我是Adobe Flex专家。我使用Flash Builder 4.6进行开发。 – 2014-10-01 11:02:16

+0

包含每个包的含义是什么? – 2014-10-03 19:15:22

回答

0

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

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

请发布更多代码,以便我可以有一个想法关于如何构建您的应用程序。

+0

我没有看到任何在进口中可能是错误的。我通过右键单击Project> Properties> Actionscipt Build Path> Source Path选项卡> Add Folder来链接Flash Builder中的其他项目。这个已链接的其他项目有一个名为“user_interface.buttons”的包。然后,当我导入我只是做“导入user_interface.buttons.TextComposedButton” – 2014-10-03 19:10:30

0

我测试了一些更多的东西,发现问题实际上是getQualifiedClassName()。 在那类,我正在建造,其超类中的一个具有此行其构造

_class = Class(getDefinitionByName(getQualifiedClassName(this))); 

有一两件事我必须先说,那就是我已经搬到了一堆类从一个项目到另一个(这些类中的一个是GraphicRadioButton),而这个其他项目也链接到抛出错误的项目中。一旦我这样做了,GraphicRadioButton不会再抛出任何错误,但是现在又会有另一个类抛出。

这另一类被称为ComposedTextButton,但我改名类是TextComposedButton(在Flash Builder重命名工具,更新其所有的引用),但错误口口声声说...

ReferenceError: Error #1065: Variable ComposedTextButtonis not defined.

。尽管我已将名称更改为TextComposedButton。因此,我的项目中必须有一些内容没有更新,这使得Flash不知道该类已被更改或移动,或者类似的东西。