2015-05-14 104 views
0

我正在使用Flash Builder 4.7中的Flash移动项目。在MXML中嵌入spark SWFLoader对象的源时,我得到4个“Flex问题”错误。我得到的错误发生在一系列Flex SDK中,从4.6到4.14。多年来,我一直没有遇到过这样的问题,但最近这种情况开始出现了。类似的代码在同事计算机上工作,尽管我们的设置看起来完全相同。要解决这个错误,我创建了一个新的Flex手机项目,在MXML是唯一代码:我得到Flash Builder SWFLoader嵌入错误

<?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> 
+0

必须有更多的地方参与。 – BadFeelingAboutThis

+0

我同意,这是我正在寻找的那种建议。该项目中唯一的文件是'Test.xmxml','Test-app.xml'和'Logo.swf'。没有我写的动作脚本。 – MMPGreg

+0

我建议您验证您的项目构建路径库,您的sdk版本 –

回答

0

虽然不是一个完整的解决方案,我发现了一个解决方法的问题。看起来,一旦工作区出现这个错误,它就会停留在那里。其中创建的任何新项目都会有这个错误。

我的解决方案是创建一个新的工作区,使用DID工作的嵌入式SWF创建一个新的虚拟项目,然后将之前发生错误的项目导入到此新工作区。唉,旧程序的错误消失了。显然,如果工作区已经有一个工作程序,任何后续的应该不会有问题。