0

Adobe Flex 4フレームワークRSLを再コンパイルする方法を知っている人はいますか?

コンパイラ指令-dump-configを使用して、FlashBuilderIDEがアプリケーションのコンパイルに使用しているビルド構成ファイルを取得しています。次に、その構成ファイルをmxmlcコンパイラに渡して、コマンドラインからビルドできるようにします。コマンドラインビルドの結果は、bin-debug以外のフォルダーに出力されます。bin-debugはlocaltrustパスであり、アプリケーションはそこからエラーなしで実行されます。他のパスのFlashアプリケーションでは、そのパスを信頼するようにFlash Playerを構成するか、-use-network=falseディレクティブを使用してコンパイルを実行する必要があります。評価のために一般ユーザーに結果を配布するので、後者の方が好きです。FlashPlayerのセキュリティ設定を変更するように要求したくありません。

ビルド構成ファイルは、フレームワークRSLが-use-networkfalseディレクティブを使用して再ビルドされることを指定していません。FlashBuilder自体はフレームワークRSLをコンパイルしません。RSLswfsをフレームワークディレクトリからbin-debugにコピーするだけです。これらのswfsは、デフォルトの-use-network=trueを使用してAdobeによってコンパイルされたようです。

したがって、RSLを再コンパイルする必要があると思います。もちろん、問題を解決する方法に関する他のヒントは大歓迎です。

4

2 に答える 2

1

さて、私はFlex RSLについて知る必要がある以上のこと、Flex SDKをその署名されていないRSLと一緒に再コンパイルする方法、そして再コンパイルは必要ないことを学びました。

今のところ、ビルドプロセスからflex configファイルを削除し、RSLの問題だけに集中することができました。-runtime-shared-library-pathがリストされる順序は、クラスの依存関係とプロセスの順序のために重要です。また、少なくとも符号なしRSLを出力パスにコピーしてください。それ以外の場合は、次のエラーが表示されます。エラー#2032:ストリームエラー。URL:file:///.../ cmd-bin-debug / textLayout_1.1.0.604.swf

最後に、FlashBuilderによってダンプされたflex configファイルを使用する必要がある場合は、RSLへのフルパスを追加するように変換する必要があります。また、FlashBuilderプロジェクトの設定とflexconfigにダンプされるものとの間の不一致に注意してください。構成ファイルを更新するために、プロジェクトを複数回クリーンアップするようにFlashBuilderに指示する必要があることがわかりました。

蒸留され、機能する「再コンパイル」を以下に示します。FLEX_HOMEおよびrelease_buildの変数を置き換えるか宣言する必要があります

最初に署名付きRSLを指定してからフェイルオーバーします。ローカルでテストするには、-use-network = falseを設定する必要があります。そうしないと、プレーヤーはFlashセキュリティエラーをスローします。

mxmlc -use-network = false \
-runtime-shared-library-path = $ FLEX_HOME /フレームワーク/libs/framework.swc,framework_$release_build.swz,,framework_$release_build.swf\
-runtime-shared-library-path + = $ FLEX_HOME / frameworks / libs / textLayout.swc、textLayout_1.1.0.604.swz ,, textLayout_1.1.0.604.swf \
-runtime-shared-library-path + = $ FLEX_HOME / frameworks / libs / spark.swc、spark_ $ release_build.swz ,, spark_ $ release_build.swf \
-debug = true $ fullfile -output ../cmd-bin-debug/$filename.swf

ああ、RSLを出力パスにコピーする便利なコマンドは次のとおりです。find$ FLEX_HOME / frameworks / rsls(-name'.swf ' -o -name'.swz')-exec cp {} ../cmd-bin -デバッグ\;

于 2010-07-13T06:28:08.077 に答える
0

理論的には、オープン ソースの Flex SDK からすべてのコードをダウンロードし、SWC プロジェクトを作成し、Flex フレームワークからソース コードを追加してコンパイルできるはずです。ただし、Adobe RSL を使用する利点は、プレーヤーがそれらをキャッシュできることです。エンド ユーザーがサーバーに Flex Framework RSL を要求しない可能性があります。すでに他のサイトからそれらをキャッシュしています。

とはいえ、問題が何であるかを理解しているかどうかはわかりません。Web サーバー経由でユーザーにアプリケーションを配布している場合、それらのユーザーは他のアプリケーションと同じようにそれをサーフィンして、その方法でテストすることができます。Flash Builder で使用されるフォルダー、または自動化されたコマンド ライン ビルド スクリプトは、ユーザーがファイルを使用する能力とは関係ありません。

次に、Flex Builder によって提案されたデフォルトの「bin-debug」ディレクトリをバイパスして、すべてのアプリケーションを「bin」という名前のディレクトリにコンパイルします。ユーザーが表示できるようにアプリケーションを配布する際に問題が発生したことはありません。または、これにより他のユーザーにコードを配布します。

于 2010-07-11T01:13:42.303 に答える