プロジェクト用のランタイム共有ライブラリを作成しました。それを 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.
私はこのおそらく非常に単純な解決策について頭を悩ませてきましたが、どこを見ても、他の誰もが得る答えは「静的リンクランタイム共有ライブラリを真にする」です。
どこから始めるべきかについての手がかり/アイデアはありますか?