从Flash CS 5导入swc时Flex Builder 3中的自动化错误

在尝试使用从Flash CS5导入的“swc”文件时,我遇到了一个非常奇怪的问题,我试图在Flex Builder 3中使用它(通过将符号转换为“Flex Component”)。错误来自与我正在导入的“swc”文件甚至远程无关的文件。 现在,我知道自动化的东西已经成为FB4的一部分,但我真的没有选择迁移到FB4。 我试图改变Flash CS5中的flex sdk设置(下面给出的步骤),但这没有帮助。 编辑 - >首选项 - > Actionscript - >“Actionscript 3.0设置” - >“Flex SDK路径”(指向flex3.5 sdk而不是Flex4.0 sdk) 我觉得这个问题很可能是兼容性问题,而不是Flex 3和Flex 4,但是无法找到相同的解决方法。任何帮助是极大的赞赏。 谢谢, 卡皮尔 这是跟踪:
Severity and Description    Path    Resource    Location    Creation Time   Id
1044: Interface method createAutomationIDPartWithRequiredProperties in namespace mx.automation:IAutomationObject not implemented by class com.sparsha.view.ui:SchematicWindow.
1044: Interface method createAutomationIDPartWithRequiredProperties in namespace mx.automation:IAutomationObject not implemented by class 
1044: Interface method get automationEnabled in namespace mx.automation:IAutomationObject not implemented by class com.sparsha.lib.controls:CloseableTabBar.    
1044: Interface method get automationEnabled in namespace mx.automation:IAutomationObject not implemented by class 
1044: Interface method get automationEnabled in namespace mx.automation:IAutomationObject not implemented by class com.sparsha.lib.layouts:DockedAppLayout. 
    
已邀请:
好的,首先是错误:这意味着Flash可能使用某个模板为您导入的符号生成了一个类,其中模板不适合您用于编译项目的SDK。具体来说,生成的类没有实现错误消息中列出的方法。即你的framework.swc有一个mx.automation的定义:IAutomationObject,它有方法createAutomationIDPartWithRequiredProperties()(漂亮的名字顺便说一句),但Flash生成的代码读作
package com.sparsha.view.ui {
import mx.automation:IAutomationObject;
public class SchematicWindow implements IAutomationObject { . . . } }
由于您无法对Flash进行任何操作而无法生成所需的方法,因此您唯一的方法是对SDK进行monkeypatch。即将mx / automation / IAutomationObject.as从SDK源复制到项目的类路径。删除冲突的方法声明(这可能会也可能不会导致其他错误)。如果它导致进一步的错误,对每个“行为不端”的类重复相同的程序...... 但是,monkeypatching意味着您不再能够使用框架RSL,因为它们将随原始版本一起提供。因此,我会尝试完全避免这个问题,并寻找另一种从Flash IDE导出符号的方法,例如,不要将它们作为Flex组件。或者,如果你真的坚持将它们作为Flex组件,那么例如,引导FlexSprite,并将引导类的Flash符号分配为“父类”。     
我最近也遇到了这个问题。当我在我的flex项目lib文件夹中包含flash生成的swc时,我会得到错误。 通过将我的flex升级到flex 4.5.1.21328A SDK,我能够解决这个问题。 关于我的项目可能有助于其他人的其他细节: 我的swc是从Flash Professional CS5.5生成的,我的Flex Project正在Flash Builder 4.5中使用。 我的swc使用ActionScript 3.0发布到Flash Player 9。 我的flex项目使用的是3.5.0.12683 SDK。     

要回复问题请先登录注册