0

FDT を使用するために、FlashBuilder プロジェクト (実際には、Linux で FlexBuilder Eclipse プラグインを使用して作業しているプロジェクト) を移行しています。私はなんとかプロジェクトをインポートし、依存している他のプロジェクトを認識させました。

ただし、無害に見える (そしてコンパイルに使用された) ものに対して、多くのコンパイル エラーが発生します。少なくとも、例えば:

<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 >

次に、2 番目のファイル (namespace:content を読み取る行) に「'コンテンツ' を解決できません」というエラーが表示されます。

言及すること:

  • Linux で (有効な) 評価キーを使用して FDT 4.0 を使用しています。
  • カスタム Flex 3.5 SDK を使用しています (FDT に同梱されているものではありませんが、あまりにも奇妙なものでもありません)

誰でも助けてくれることを願って...

ありがとう

PH

4

1 に答える 1

0

正しくコンパイルされ、コンパイラの警告が表示されない場合、それはパーサーのバグであり、コードのバグではありません。JIRA にファイルしてください: http://bugs.powerflasher.com/jira/browse/FDT

私の場合、このコードにはエラー フラグがありません。コードを生成するためのクイック アシストも表示されます。

FDT のバージョンも間違っている可能性があります。4.0 を使用していますが、これはかなり古いものです (約 1 年)。それ以来、多くの機能が追加され、バグが修正されました。詳細については、リリース ノートを参照してください。

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>
于 2011-09-06T15:35:16.457 に答える