Я перевожу проект FlashBuilder (фактически проект, над которым я работаю с плагином FlexBuilder для Linux) для использования 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 >
С другой стороны, я получаю сообщение об ошибке «Не удается разрешить содержимое» во втором файле (в строке, которая читает пространство имен: содержимое).
Что следует упомянуть:
- Я использую FDT 4.0 под Linux с (действительным) ключом eval
- Я использую специальный Flex 3.5 SDK (не тот, который поставляется с FDT, но и не слишком странный)
Надеясь, что кто-нибудь может помочь ...
Спасибо
PH