0

ライブラリとして提示したいいくつかの実用的なactionscript3コードがあります。スキンやコンポーネントはなく、純粋なas3クラスだけです。そこで、SWCを作成し、そこにすべてのコードを配置して、SWCとしてパッケージ化しました。コード自体は他のいくつかのSWCに依存しているので、これらをマージされた依存関係として含めたので、結果のSWCにはすべてが含まれています(サイズは悪くなりますが、確かに)。リンカレポートをチェックして、すべてが正常に見えることも確認しました。

ただし、このSWCをFlexアプリケーション(空の場合もあります)で使用しようとすると、次のような奇妙なランタイムエラーが発生します。

ReferenceError: Error #1065: Variable _FormItemStyle__embed_css_Assets_swf_mx_containers_FormItem_Required_527421487 is not defined.

at flash.display::MovieClip/nextFrame()
at mx.managers::SystemManager/deferredNextFrame()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:319]
at mx.managers::SystemManager/preloader_initProgressHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2945]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:398]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

それが何を意味するのか、そして何がo_Oを見逃したのか、私にはわかりません(どうやらライブラリのパッケージに何か問題があります)。何百万もの開発者が問題なく独自のSWCを作成しているので、これは非常に愚かなことだと思います。私のFlexSDKは3.2.0で、Mavenとflex-mojosを使用しています(ただし、Flash Builderを使用してSWCを純粋にビルドしようとして同じ結果が得られたので、それは問題ではありません)。また、関係ありません、私は10に向かって同じたわごとの建物を手に入れました)。

誰かがこれで私を助けることができますか?

アップデート。

どうやらそれは推移的な依存関係に関係しているようです。ライブラリが依存するすべてのSWCを最終的なFlexアプリケーションに追加すると、すべてが機能します。したがって、今の質問は、そうせずにどのように機能させるのか、そしてこれらの推移的な依存関係がSWCにマージされても機能しないのはなぜですか?

4

1 に答える 1

0

依存関係のリンケージとしてランタイム共有ライブラリまたは外部を使用しようとしているようです。それらをmerged into codeに変更してみてください。にある Flash Builder では、Properties -> Flex Library Build Path -> Library Path. (ただし、Mavenを使用してそれを行う方法はわかりません)。そうすれば、これらのクラスのバイトコードが swc に含まれ、「推移的な依存関係」がなくなります。

于 2011-05-03T23:53:06.353 に答える