2010-12-06 89 views
0

我正在迁移FlashBuilder项目(实际上是我正在使用Linux上的FlexBuilder eclipse插件开发的项目)以使用FDT。我设法导入该项目,并使其意识到它依赖的其他项目。将FlashBuilder项目迁移到FDT时解决错误

但是,对于看起来无害(并且用于编译)的东西,我得到了许多编译错误。至少,例如:

<mx:SomeClass initialize="{this.init()}" ... > 
    <mx:Script> 
    <![CDATA[ 
     .... 
     public function init() : void { 
      // ... whatever 
     } 

     public function foo(event : Event) : void { 
      // .. whatever 
     } 
      ]]> 
    </mx:Script> 
    <mx:SomeOtherComponent click="{this.foo(event)}"/> 
... etc .... 

所以,我得到“未解决的函数”为形式的someAttribute所有的呼叫=“{this.someFunction()}”,即使该功能在同一个块中所描述文件。

这是我一直在滥用AS3/FlashBuilder吗?

此外,通用组件有问题。假设我有一个递延“内容”属性的类,我想这个实例化类“填补空白”:

我定义的CustomComponent.mxml文件中的自定义组件,具有延迟的内容

<mx:VBox> 
<mx:Script> 
    <![CDATA[ 
     public var content : IDeferredInstance; 

     public function buildMe() : void { 
     this.addChild(content.getInstance() as UIComponent); 
     } 

我延长另一个XML文件中的自定义组件,将东西作为内容(命名空间是包含CustomComponent文件的命名空间只是名字)

<namespace:CustomComponent xmln:namespace="..." > 
    <namespace:content > 
     <!-- Whatever ... --> 
    </namespace:content > 
</namespace:SomeClassWithDeferredInstance > 

话又说回来,我得到一个“能” t解决第二个文件中的'内容'错误(a t读取命名空间的内容:内容)。

事情提:

  • 我使用FDT 4.0,在Linux下,用(有效)EVAL关键
  • 我使用的是自定义的Flex 3.5 SDK(不是一个与FDT发货,但不是太奇怪了一个任意)

希望能有人可以帮助...

感谢

PH

+0

的Flash Builder和FDT使用相同的Flex编译器(Adobe的开源之一)。我通常会推荐检查SDK /编译器的版本,但是如果您使用的是定制的SDK,我认为您已经完成了这个工作。我不明白你的'延期内容'属性的解释。 – JeffryHouser 2010-12-06 17:33:31

+0

我想我的意思是“自定义组件”,如下所述:http://livedocs.adobe.com/flex/3/html/help.html?content=intro_2.html(我添加了一个示例) – phtrivier 2010-12-06 18:09:41

回答

0

如果编译正确,并且没有任何编译器警告,那么它就是解析器中的错误,而不是代码中的错误。请在JIRA中存档:http://bugs.powerflasher.com/jira/browse/FDT

对我来说,这一点代码没有任何错误标志 - 我甚至可以快速帮助我生成代码。

您的FDT版本也可能不正确。你使用4.0,这是相当古老的(大约一年)。从那时起,许多功能被添加并修正了错误。更多信息请参阅发行说明。

http://fdt.powerflasher.com/docs/FDT_4_Release_Notes

我建议升级到FDT 4.5.X

<s:ApplicationminWidth="955" minHeight="600" initialize="{this.init();}"> 
    <fx:Script> 
     <![CDATA[ 
      private function init() : void {} 
      private function foo(event : MouseEvent) : void {} 
     ]]> 
     </fx:Script> 
     <s:Button click="this.foo(event);"/> 
    </s:Application>