2010-12-14 13 views
1

flex4 SDKをベースにしたアプリケーションと、このプロジェクトのライブラリ(swcフ​​ァイル)を別のバージョンのflex(3.2)に基づいて作成できますか?Flex SKDのメインプロジェクトと外部SWC

この状況をどうやって解決しますか?

+0

afaikそれは互換性があるはずです – www0z0k

答えて

-1

と思いますこのよう:

Flexアプリケーションは、UIComponentクラスにロードし、FlashPlayerのロードを開始します。 swcのクラスが使用されているとき(そして、Flex 3.2からUIComponentがコンパイルされている場合)、flashPlayerは、swcからコンパイルされたものではなく、最初に初期化されたswfからすでに使用されているUIComponentを使用します。

[これは簡略化されています。これは、swfサイズでカットダウンするすべてのことを行うコンパイラです。モジュールは同じことを行います '。 2つのモジュールが同じクラスを使用し、1つが最初にロードされた場合、そのクラスの更新版を持っていても古いクラスが使用されます。]

ベストプラクティス:swcsは使用しないでください。可能であれば、コンパイルに使用したのとまったく同じsdkをソースからビルドします。

次善策:多数のFlexクラスを使用しないswcsを使用します。 Swizは素晴らしい例です。彼らはいくつかのフレックスクラスを取りますが、あなたが "mx"のプロジェクトを検索するとIMXMLObject、FlexEvent、およびいくつかのBindingクラスがすぐに変更されることはないクラスの25の結果が見つかります。あなたのswcがComboBoxを使用している場合、あなたは困っています。 (あなたはComboBoxの過去2年間のバグリリースを見たことがありますか?そのことは、私が衣服を交換した時より3.2秒遅れて、それは週に少なくとも1回は変わっています)。

私はこのサイトで多くの時間を費やすことはありませんが、私はあなたが取り入ろうとしているswcを知ることに興味があります。オープンソースですか?

私は役立つことを願っています。 運が良ければ、 Jeremy

+0

これは実際に私のロジックが私に言ったことですが、私は検証をしたかったのです。 – KensoDev

+0

この回答は少し不正確だと思います。 SWFのクラスはコンパイル時に最適化され、実行時には最適化されません。 1つのUIComponentがSWCにコンパイルされても、同じUIComponentはSWFにコンパイルされません(FlexフレームワークのRSLを無視)。私は、SWCを使用しないことがベストプラクティスであるという勧告に強く反対します。バージョンの問題にもかかわらず重要なニーズを解決し、プロジェクト間で再利用するための適切なツールです。 – JeffryHouser

+0

あなたのコメント: "コンパイル時、実行時ではありません。"私の記事全体を読んでいれば、私の不正確な記述に対処する私のやり方は、あなたのものよりもずっと安かったとJeffは思っていました。「swfサイズでカットダウンするのはこのすべてのことを行うコンパイラです...」 「強く反対する」と言いますが、私は数十個のswcsをコンパイルしてMavenの設定で戦う必要はなかったと推測します。開発者として、あなたの目標は、あなたのprojecstとあなたは4分以上あなたのフレックスSDKバージョンを変更するときに作業する必要はありません。 –

0

Flex 3 SWCは、理論上、すべてのFlex 3ポイントリリースで正常に動作するはずです。 Flex 4 SWCは、すべてのFlex 4ポイントリリースで正常に動作するはずです。私は、Flex 3 SWCがFlex 4に対して動作するとは思っていませんが、SWCの内容と使用されるクラスによって異なります。

実際には、奇妙なエラーが発生することがあります。メインプロジェクトで使用するのと同じSDKに対してすべてのSWCをコンパイルすることを強くお勧めします。奇妙なランタイムとコンパイラの多くのエラーは、バージョンが一致していることを確認することで解決できます。

これは、「質問するよりも、試してみるのが早いでしょうか」と思う質問のタイプです。あなたは特定の問題を抱えていますか?それの

+0

私はそれを壊しました、これは私の質問が物事の理論に触れた理由です。 Flex3 SDKでしか動作しない従来のコード(巨大で、巨大だと思います)があるとします。今、このコードをライブラリとして使用する必要があるプロジェクトがあります。 flex3とlib4をflex4に対してコンパイルできますか?確かに...それは知られていますが、問題は、舞台裏で、この結合されたプロジェクトでランタイムが同じように動作するのですか?もう1つのことは、libを外部からロードしてプロジェクト内でコンパイルしなかった場合です。ありがとうございます。 – KensoDev

関連する問題