3

プロジェクト用のランタイム共有ライブラリを作成しました。それを ResourceLibrary と呼びましょう。私のプロジェクト (画像、サウンド、ムービー クリップ) のすべての埋め込みアセットが含まれており、他の多くのコードでシングルトンとして使用されています。

このバッチを使用してコンパイルしています(残念ながらWindows):

SET normalstuff=--namespace+=http://ns.adobe.com/mxml/2009,${flexlib}/mxml-2009-manifest.xml --namespace+=http://www.adobe.com/2006/mxml,${flexlib}/mxml-manifest.xml --namespace+=library://ns.adobe.com/flex/spark,${flexlib}/spark-manifest.xml -external-library-path lib -external-library-path+=${flexlib}/libs -external-library-path+=${flexlib}/libs/player/10.0
call compc -source-path src/ -output lib-ext/resources.swc -include-namespaces+=http://MYPROJECT -namespace+=http://MYPROJECT,confs/ResourceLibrary-manifest.xml %normalstuff% -library-path+=data/characters -library-path+=data/menus -library-path+=data/icons/relationships  -include-lookup-only=true 

これにより、resources.swc ファイルが作成されます。この swc をライブラリに含め、-static-link-runtime-shared-libraries =true にすると、このファイルが作成されます。しかし、ランタイム共有ライブラリをメインの swf に埋め込みたくないので (ファイル サイズを 10 MB から ~3 MB に削減します)、static-link-runtime-shared-librariesを false にする必要があります。

ただし、コードを実行すると、次のエラーが発生します。

[Starting debug session with FDB]
[Fault] exception, information=VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found.

私はこのおそらく非常に単純な解決策について頭を悩ませてきましたが、どこを見ても、他の誰もが得る答えは「静的リンクランタイム共有ライブラリを真にする」です。

どこから始めるべきかについての手がかり/アイデアはありますか?

4

3 に答える 3

1

私はこれを理解しましたが、ここに投稿するのを忘れていました。

あなたがしなければならないことは、使用されるswfが配置される場所と、そこに含まれるクラス(swc arg)を伝えることです。

-runtime-shared-library-path=lib/MyLibrary.swc,MyLibrary.swf

次に、swc を抽出し (7zip を使用しますが、どれでも機能します)、抽出した swf の名前を「MyLibrary.swf」に変更し、メイン プログラムと同じディレクトリに移動します。

于 2011-09-02T23:32:45.020 に答える
0

使用しているFlashBuilderのバージョンと一致しないSDKを使用している場合は、プロジェクトのプロパティでそのSDKに手動でリンクする必要がある場合があります。

于 2011-08-08T23:18:07.140 に答える
0

SWC の作成はRSL ではないことをご存知ですか? swc = コンパイル時ライブラリ。swf = ランタイム ライブラリ (Adobe 署名付きライブラリの場合は swz)。

http://livedocs.adobe.com/flex/3/html/help.html?content=rsl_01.html#168690 http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14 .html

于 2011-08-09T02:00:59.210 に答える