为什么Adobe Flex在编译时会从Flash中删除ActionScript脚本符号?

时间:2009-08-09 16:46:30

标签: flex flash mxml embed mxmlc

我希望动画能够在循环时调度自定义事件。很明显,甚至没有trace()正在运行。经过一番搜索,我在Adobe找到了以下内容:
http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html
“如果SWF文件包含任何ActionScript代码,Flex会在编译期间打印警告,然后从嵌入符号中删除ActionScript。这意味着您只能嵌入符号本身。”

我还找到了格兰特斯金纳的解决方案:
http://gskinner.com/blog/archives/2007/03/using_flash_sym.html

所以,我可以继续,但我仍然在想。为什么mxmlc在使用元标记将符号嵌入Flex应用程序时从Flash编译资源中剥离ActionScript?

2 个答案:

答案 0 :(得分:3)

很抱歉很晚才回复,但自从我写了这段代码后,我就回答了。 : - )

基本上,有两个答案。

  1. 对于包含AS2字节码的旧SWF资产,尝试将字节码转换为AS3是一项太多的工作。我假设这不是你关心的用例。

  2. 对于链接到AS3字节码的SWF资产,基本问题是不再存在依赖信息,因此当我们克隆资产时,我们不知道还需要提取什么。因为Flash可以导出SWC,所以我认为这是一个更强大的工作流程,用于从Flash到Flex获取代码资源。 (看一看SWC文件,你会看到一个描述链接器使用的依赖关系的XML文件。)

答案 1 :(得分:0)

这可能是性能问题。要加载swf资源而不剥离它,请使用SWFLoader或Loader动态加载它,而不是嵌入它。