【发布时间】:2015-07-26 09:30:09
【问题描述】:
我正在使用 Flash Builder 4.7 处理 Flash Mobile 项目。在 MXML 中嵌入 spark SWFLoader 对象的源时出现 4 个“Flex 问题”错误。我得到的错误发生在从 4.6 到 4.14 的一系列 Flex SDK 中。多年来我一直没有遇到过这样的嵌入问题,但最近开始出现这种情况。尽管我们的设置看起来完全一样,但类似的代码也可以在同事的计算机上运行。为了解决这个错误,我创建了一个新的 Flex Mobile 项目,MXML 中的唯一代码是:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<s:SWFLoader source="@Embed(source='Logo.swf')"/>
</s:Application>
我得到的错误是:
1084: Syntax error: expecting rightbrace before end of program. line 29
1084: Syntax error: expecting rightbrace before stream. line 25
1084: Syntax error: expecting rightparen before s. line 25
1094: Syntax error: A string literal must be terminated before the line break. line 25
没有为错误提供路径。我的项目显然没有第 25 行或第 29 行,所以我什至不知道这个错误可能发生在哪里。
“Logo.swf”文件位于正确的位置。它只是一个矢量图形,其中没有任何动作脚本代码。
编辑: 问题的根源似乎是嵌入 SWF 的本质,甚至是 SWFLoader 的外部。下面的 MXML 代码,其中嵌入了一个脚本代替了 SWFLoader 嵌入,给出了与前面相同的 4 个错误:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
[Embed(source="Logo.swf")]
[Bindable]
public var swfCls:Class;
]]>
</fx:Script>
</s:Application>
【问题讨论】:
-
一定有更多的地方参与。
-
我同意,这是我正在寻找的建议。该项目中仅有的文件是“Test.xmxml”、“Test-app.xml”和“Logo.swf”。我没有编写任何动作脚本。
-
我建议您验证您的项目构建路径库,您的 sdk 版本
-
我在通过脚本嵌入 SWF 时发现了同样的问题,请参阅 EDIT to the original post。
-
如果您删除所有内容并仅添加一个按钮,问题是否仍然存在?
标签: actionscript-3 flash apache-flex embed swfloader