2011-08-08 4 views
3

私は自分のプロジェクトにランタイム共有ライブラリを作成しました。私のプロジェクト(画像、サウンド、ムービークリップ)のすべての埋め込みアセットが含まれており、他の多くのコードでシングルトンとして使用されています。"エラー#1014:クラスmx.core :: BitmapAssetが見つかりませんでした"ランタイム共有ライブラリを使用しようとしています

私は(残念ながらWindowsの場合)このバッチを使用して、それをコンパイルしています:

私は自分のライブラリにこのSWCを含めると -static-リンクランタイムを持って、私のresources.swcファイルを、作る
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 

-shared-libraries = trueです。しかし、私は主なswf(ファイルサイズを10MBから3MBに減らす)にランタイム共有ライブラリを埋め込みたくないので、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. 

私はこれはおそらく、超シンプルなソリューションの上に私の脳をかき集めてきたが、どこでも、私は誰もが得る答えは「静的で見ます-link-runtime-shared-librariesをtrueに設定します。

どこから手掛かりがありますか?

答えて

1

私はこれを考え出したが、ここに投稿するのを忘れました。

(SWC引数)
-runtime-shared-library-path=lib/MyLibrary.swc,MyLibrary.swf 

を使用するSWFが配置される場所ということを教えている、そしてどのようなクラスがそれになりますあなたがしなければならない私は、7zipをを使用して(SWCを抽出し、任意の作品)を抽出し、抽出したswfの名前を "MyLibrary.swf"に変更し、それをメインプログラムと同じディレクトリに移動します。

+0

ありがとう! MXMLCでモジュールをコンパイルする際に問題が発生しました。コンパイラはModuleBaseクラスを必要とするモジュールに埋め込みませんでした。結局のところ、最終的な解決策は、各モジュールが '-static-link-runtime-shared-libraries = true'でコンパイルされ、各モジュールの各RSLとそのパスを指定することにあります。 –

0

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

+0

どうすれば確認できますか?私はFlashDevelopを使用しています3.3.4 RTMと私のFlex SDKはFlex SDK 4.1.0です 私のTools> Program Settings> AS3Contextでは "Flex SDK Location"が "C:\ bin \ Flex SDK 4.1.0"に設定されていますそれは私がそれをインストールした場所です)。 フレックスはいつもこのRSLのものまで完璧に働いています – Zambini

+0

私は分かりません。私はFlex用のFlashDevelopを使用していません.Flex開発のツールとしては、特にFB 4.5の生産性向上のためのツールとしてはあまり適していません。私が言うことは、あなたの図書館プロジェクトもSDKにリンクする必要があるということです。私はあなたの問題は、主なプロジェクトが正しいSDKについて知っているが、ライブラリプロジェクトではない可能性が高いと思います。これを修正する方法についてFDドキュメントを確認してください。 –

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

+0

はい、私はswc(どのクラスがRSLになるのかを見つけるために)とswc(swcから)を取り出して言います。 少なくとも、AS3のドキュメントが教えてくれるものです。 – Zambini

+0

[このチュートリアル](http://www.flexer.info/2008/01/08/how-to-create-a-swf-rsl-from-a-swc-and-how-to-use-it/ )は、swcからカスタムRSLを作成する方法を示します。ここからは、swfを作成するときにrsl-url(mxmlcのランタイム共有ライブラリrsl-url)を指定する必要があります。 –

関連する問題