2

SDK4.1.0から4.5.1に移行するFlashBuilderプロジェクトがあります。これは比較的簡単な変更です(ビルドにはMavenを使用しており、4.5.1の依存関係に更新した後、ビルドを成功させることができました)。

前述のように、プロジェクトはMavenとflexmojosでうまく構築されます。問題は、FlashBuilderでプロジェクトを開くときです。mavenプロジェクトがインポートされ、mavenflexmojos:flexbuilderビルドコマンドを実行してflexプロジェクトとして設定されます。

この問題は、s:名前空間で指定された特定のmxコンポーネントがIDEで受け入れられなくなり、エラーが発生した場合に発生します。たとえば、次のようにコンパイルします。

<s:states>
    <s:State name="normal" />
    <s:State name="disabled" />
</s:states>

s:Statemx名前空間に変更する必要があります:

<s:states>
    <mx:State name="normal" />
    <mx:State name="disabled" />
</s:states>

これは単なる一例であり、特定のスパーク名前空間コンポーネントでのみ発生します。どうしてこれなの? これがFlexSDK4.1.0では正常にコンパイルされるのにFlexSDK4.5.1ではコンパイルされないのはなぜですか?また、必要な名前空間の変更の原因は何ですか?

4

1 に答える 1

3

Adobe が mx コンポーネント (State や Spacer など) の spark 名前空間を指定するちょっとしたトリックを行ったように見えるため、FlexMojos を使用して同じ問題を発見しました。

また、 を使用している場合flexmojos:flexbuilderは、古いバージョンの FlexMojos (3.8?) も使用していることを意味します。現在バージョン 4.0 (RC2) がありますが、現時点では flexbuilder の目標は削除されています。

とにかく、あなたの質問に戻りますが、私のプロジェクトでは逆の見方をしています (s:スペーサーは FlexMojos ではなく Flash Builder で動作します)。個人的には、これらの名前空間は交差すべきではないと感じています。開発者としては、正確な名前空間を指定するだけで、名前空間のトリックに煩わされることはありません。

于 2011-09-30T03:25:54.567 に答える