我正在迁移一个 FlashBuilder 项目(实际上是我在 Linux 上使用 FlexBuilder eclipse 插件开发的一个项目)以使用 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 >
然后,我在第二个文件(在读取命名空间:内容的行)中收到“无法解析'内容'”错误。
需要提及的事情:
- 我在 Linux 下使用 FDT 4.0,带有(有效的)eval 键
- 我正在使用自定义的 Flex 3.5 SDK(不是 FDT 附带的,但也不是太奇怪)
希望任何人都可以帮助...
谢谢
酸碱度