私はこのフレックスアプリケーションを新しいflex hero sdkを使用してアンドロイドで実行するように変換を開始しました。 私はすでにモバイルに互換性のないコンポーネントをすべて置き換えて、それを数回実行することに成功しました。無効なBitmapDataランダム
元のWebアプリケーションを実行している同じライブラリを使用すると、完全に機能します。
ただし、モバイルアプリケーションの起動中に、これらのランダムな無効なBitMapdataエラーが発生するという大きな問題があります。 ここに出力全体があります。
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData/ctor()
at flash.display::BitmapData()
at spark.primitives::BitmapImage/http://www.adobe.com/2006/flex/mx/internal::applySource()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:1337]
at spark.primitives::BitmapImage/http://www.adobe.com/2006/flex/mx/internal::validateSource()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:1652]
at spark.primitives::BitmapImage/commitProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:902]
at spark.primitives.supportClasses::GraphicElement/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\supportClasses\GraphicElement.as:3487]
at spark.components::Group/commitProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\components\Group.as:931]
at mx.core::UIComponent/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\core\UIComponent.as:8095]
at mx.managers::LayoutManager/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:760]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1157]
この文で
if (!bitmapData && tmpSprite)
、のBitmapData == nullのを私は何度もデバッグし、私はそれがこの方法BitmapImage.asで
mx_internal function applySource():void
{
に達したときにことがわかりました。しかし、元のWebアプリケーションを実行すると、bitmapDataはnullではありません。 のBitmapData値は、今では私はそれを利用した、webアプリケーションを実行したときのようなモバイルアプリケーションを実行している誘い込むが、画像を見つけることができない、と私には思えるのコード
<s:BitmapImage id="smallTriangle" smooth="true" source="@Embed('/com/xploreplus/components/containers/panel/assets/images/smallTriangle.png')" />
のこの行で決定されるべきです上記のコード行がどこにあるライブラリであれ、画像を見つけることができます。
この問題は数日間私を悩ませています。これはバグだと思っています。特に時々実行されるためです。それとも私がここで紛失しているものがありますか?
この問題を修正した可能性のあるHero PreviewリリースのMAXからビルドされたバグはいくつかありました。あなたは最新のヒーロービルドを試しましたか?プレリリースプログラムにサインアップすると、最新のビルドを入手できます。http://iamdeepa.com/blog/?p=85 –
こんにちはsteven。私は現在、MAXのプレビュー(4.5.0.17689)ビルドを使用しています。これは、後のビルドではモバイル機能をサポートしていないため、主なヒントSDKのダウンロードページで見つけることができます。私は数日前にプレリリースプログラムにサインアップしました。このプログラムに参加すると、モバイル機能を含む最新のビルドを入手できますか?また私は一時的に私のskinclassesを削除することによって無効なビットマップデータのエラーを修正した、エラーが別の問題によってスローされたようだ。私はそれを深く掘り下げる時間がなかった。だからプログラムは今実行されますが、まだimgを表示していません – vegasaurus
あなたの問題になる可能性は低いですが、無効なBitmapDataエラーが散発的に発生することがあります:1)ビットマップが大きすぎます。 2)私のアプリケーションにメモリ不足が発生したとき(BitmapDataを割り当てることは、それを端に押し出す傾向があります)3)無効なサイズのビットマップデータを新規に作成しようとするとき。私はFlexをあまり使用しませんが、BitmapImageからbitmapData変数にid "smallTriangle?"を割り当てるコードを含めてください – DoomGoober