我有一個非常複雜的Flash應用程序(想想Flash中的Photoshop)。檢查BitmapData是否有效
有很多圖像處理,並且除了一個bug之外,所有工作都很好。
該應用程序具有撤消/重做功能,有時會引發錯誤。有太多的代碼粘貼在這裏,但問題解決此行代碼牯:
trace("UNDO BMD: " + BeautyGlobal.undoArray[_undoSteps].bitmapData);
var newUndoData:BitmapData = BeautyGlobal.undoArray[_undoSteps].bitmapData.clone()
跟蹤語句顯示:
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存在,但它是無效的。這個問題不會一直預設。如果我可以檢測到位圖數據是否有效,我可以阻止它崩潰整個應用程序。我已經嘗試了幾件事情:
- 檢查BM數據的高度(崩潰,並同樣的錯誤應用程序)
- 通過BMD循環得到所有屬性的...沒有前甚至出現錯誤出現。
任何建議將不勝感激。
謝謝!
你嘗試過使用嘗試{...你的普通方法...} catch(error:ArgumentError){... alternative method ...}? – 2011-02-03 14:51:55