我编写了一个SWC并在flashdevelop项目中使用它。
当我编译项目时一切都很好,但是当我运行/调试项目时,我得到:
[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@43e3f99 to fl.controls.Button.
以下行导致错误:
public var loginPanel:loginControl = new loginControl();
LoginControlView是movieclip名称。 loginControlView是资产名称。 并且有一个名为loginControl的类,它扩展了loginControlView
LoginControlView movieclip包含2个文本框和一个按钮(fl.controls)
如果我从Flash IDE编译/运行/调试,项目运行正常。
有什么建议吗?
答案 0 :(得分:4)
好的,我找到了解决方案。我的类路径中包含一个指向flash安装的fl.controls文件夹的路径。但fl.controls也与我的SWC一起出口。 我假设同一个类的两个定义导致了问题,因为当我删除类路径时,一切正常。
答案 1 :(得分:0)
正如您可能知道的那样,fl.controls包中包含Flash Professional CS5及更早版本的组件,通过在.swc中捆绑组件,可以在Flash Develop中使用 :How do I use an Adobe control from fl.controls.* in FlashDevelop?
由于您的项目在Flash Professional中编译时没有错误,因此问题必须在导出的fl.controls中。* .swc。
而不是使用fl.contros。* .swc,因为您使用的是Flash Develop,您可以使用Flex 4.1 SDK中的spark.controls package或mx.controls package。这两个包都包含一个Button和TextInput类。