`
schoolar
  • 浏览: 5308 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ArgumentError: Error #2015: Invalid BitmapData.

    博客分类:
  • flex
阅读更多

这是ActionScript3里面的一所抛出来的错误,大家见过此错误,请大吓们帮个忙。谢谢!

ArgumentError: Error #2015: Invalid BitmapData.
	at flash.display::BitmapData/get width()
	at worklistdetails.scanneddocs.view.component::ScannedDocsViewer/zoomImage()[D:\workspace3.4\VW3\flex_src\worklistdetails\scanneddocs\view\component\ScannedDocsViewer.mxml:344]
	at worklistdetails.scanneddocs.view.component::ScannedDocsViewer/doZoom()[D:\workspace3.4\VW3\flex_src\worklistdetails\scanneddocs\view\component\ScannedDocsViewer.mxml:337]
	at worklistdetails.scanneddocs.view.component::ScannedDocsViewer/handleWheel()[D:\workspace3.4\VW3\flex_src\worklistdetails\scanneddocs\view\component\ScannedDocsViewer.mxml:552]
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at flash.external::ExternalInterface$/_callIn()
	at Function/<anonymous>()
 


以上所抛出的错误是data.width或是data.height为空

所以要对此data对象进行处理。

 

下面的这个方法是获取位图数据的:

 private function zoomImage():void
			{
				if(loadedImage == null) return;
	 		    var data:BitmapData = Bitmap(origImage.content).bitmapData; 
                            /*下面这句话是对data对象进行判断*/
                            if (GCUtils.isBitMapDisposed((data))) return;	
	 		     
		 		    if(loadedImage.angle == 0 || loadedImage.angle == 2)
		 		    {
						currentImage.width  = data.width * loadedImage.origScaleX * loadedImage.zoomScaleXY;
						currentImage.height = data.height * loadedImage.origScaleY * loadedImage.zoomScaleXY;
		 		    }
		 		    else
		 		    {
		 		    	currentImage.width  = data.height * loadedImage.origScaleX * loadedImage.zoomScaleXY;
						currentImage.height = data.width * loadedImage.origScaleY * loadedImage.zoomScaleXY;
		 		    }	 		  
			  	if ( !currentImage.visible )
					currentImage.visible = true;
				setSizeLabel();		
			}

 此是GCUtils类,只要是对获取data对象进行预处理:

package commons.gc
{
  import flash.display.BitmapData;
  
  public class GCUtils
  {
    /*
    * Checks if bitmap is disposed 
    */
    public static function isBitMapDisposed(data:BitmapData):Boolean
    {    
      try
      {
         data.width;        
      }
      catch(error:Error)
      {
        return true;
      }
      return false;
    }
  }
}

 此篇文章只代表我的见解, 解决了这个异常

  • 大小: 18 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics