私は非常に複雑なFlashアプリケーションを持っています。BitmapDataが有効であることを確認してください
画像操作がたくさんあり、1つのバグを除いてすべてがうまくいきます。
アプリケーションには、元に戻す/やり直し機能があり、ときどきエラーが発生します。そこここに貼り付けるあまりにも多くのコードがありますが、問題は、このコード行を中心に展開:
trace("UNDO BMD: " + BeautyGlobal.undoArray[_undoSteps].bitmapData);
var newUndoData:BitmapData = BeautyGlobal.undoArray[_undoSteps].bitmapData.clone()
traceステートメントが表示されます。
UNDO BMD: [object BitmapData]
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData/clone()
at Main/undoAction()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.beautyCanvas.ui::Toolbar/undoClick()
だからのBitmapDataありますが、それは有効ではありません。この問題は、あらかじめ設定されているわけではありません。ビットマップデータが有効かどうかを検出できれば、アプリケーション全体がクラッシュするのを防ぐことができます。私はいくつかのことを試してみました:
- は、すべてのプロパティを取得するためにBMDをループBMデータ(同じエラーでアプリがクラッシュ)
- の高さを確認...何も前に来るんエラーが発生します。
ご意見をいただければ幸いです。
ありがとうございます!
try {...あなたの通常のメソッド...} catch(エラー:ArgumentError){...代替メソッド...}? –