我有一个非常复杂的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