`
schoolar
  • 浏览: 5260 次
  • 性别: 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
分享到:
评论

相关推荐

    Boost.Python.ArgumentError: Python argument types in错误解决及Boost安装配置-附件资源

    Boost.Python.ArgumentError: Python argument types in错误解决及Boost安装配置-附件资源

    Reflector 7.3.0.18.rar

    Reflector是一款强大的软件工具,主要用于iOS、Android等设备的屏幕镜像和无线投屏。它允许用户在电脑上实时查看和控制移动设备的屏幕,广泛应用于教学、演示、开发和测试场景。Reflector 7.3.0.18是该软件的一个...

    ip_as_int:IP地址-整数转换,对作为整数存储的ip地址属性的activemodel和activerecord支持

    IpAsInt IP地址-整数属性的ip属性的整数转换和activerecord支持。...# =&gt; ArgumentError: Invalid IP: need 4 parts IpAsInt . ip2int ( '192.168.0.s' ) # =&gt; ArgumentError: Invalid IP: illegal format IpAsI

    掌握Ruby的异常处理:优雅应对错误的艺术

    大部分常见的异常都是 `StandardError` 类的子类。例如: - `ArgumentError`:当函数参数不正确时抛出。 - `IOError`:当输入/输出操作失败时抛出。 - `TypeError`:当类型转换失败时抛出。 - `ZeroDivisionError`:...

    smart_engine:通用SmartCore功能

    SmartCore :: Engine· ... SmartCore::ArgumentError (继承自::ArgumentError ); SmartCore::FrozenError (继承自::FrozenError ); SmartCore::NameError (继承自::NameError ); SmartCore

    关于FLASH与后台通信问题

    } catch (e:ArgumentError) { trace(e); } client.addEventListener(Event.CONNECT, sendData); client.addEventListener(ProgressEvent.SOCKET_DATA, receiveData); } ``` 这里我们为连接成功和接收到数据这...

    撬动救援:每当出现问题时就启动撬动会话

    撬救 Ruby的超快速调试。 (请参阅 ) 介绍 pry-rescue是Ruby的“未处理异常中断”的实现。...ArgumentError : wrong number of arguments ( 2 for 1 ) from /home/conrad / 0 / ruby / pry - rescue / example

    Ruby语言教程对Ruby语法的总结展示Ruby语法的基本概念和用法.docx

    raise ArgumentError, "Argument error occurred" rescue ArgumentError =&gt; e puts "Caught an argument error: #{e.message}" end ``` #### 七、文件操作 **基本操作:** - 使用 `File` 类来进行文件的读写...

    采集

    采集类型检查集例type =... add ( :not_a_string )# =&gt; ArgumentError (:not_a_string must be a String)通用风格type = Stringcls = Collection :: Set [ type ]cls# =&gt; "Collection::Set::String"collection = cls .

    ow:人类的函数参数验证

    人类的函数参数验证 强调 富有表现力的可链接API 大量内置验证 支持自定义验证 Node.js中的自动标签推断 用TypeScript编写 安装 $ npm install ow 用法 如果使用CommonJS,则需要以const ...//=&gt; ArgumentError: Expec

    ruby语言介绍 ruby语言介绍

    rescue ArgumentError puts "Error taking square root" rescue ZeroDivisionError puts "Attempted division by zero" else puts "Other Error" ensure # 这部分代码在最后一定会执行 end ``` 异常处理...

    AS3_显示对象结构图.pdf

    * ArgumentError:是一个参数错误类,用于捕获参数相关的错误。 * DefinitionError:是一个定义错误类,用于捕获定义相关的错误。 * EvalError:是一个 eval 错误类,用于捕获 eval 相关的错误。 VI. 结论 AS3 ...

    foghorn:在您的Ruby中添加一点Foghorn来克亨鸡

    福格霍恩 在您的Ruby中添加一点Foghorn来克亨鸡: pry ( main ) &gt; Boy . I . say "boy what's wrong with you" ...ArgumentError: You' re way off , I say you ' re way off this time son! wrong number of argum

    Ruby中proc和lambda的两个区别

    lambda_test.call(1) # 抛出 ArgumentError: wrong number of arguments (given 1, expected 2) ``` 相比之下,`lambda` 在参数数量不匹配时会抛出 `ArgumentError` 错误。这意味着 `lambda` 更加严格,要求传入的...

    错误:错误处理Elixir的助手

    raise ArgumentError, message: "Invalid argument" ``` 这将抛出一个`ArgumentError`,并附带自定义的错误消息,便于调试。 总之,Elixir通过`try/rescue`、`catch/throw`、`catch/exit`以及模式匹配等机制,提供...

    调试日志1

    第一个错误是`ArgumentError: argument --batch_size: conflicting option string: --batch_size`。这个错误通常意味着命令行参数解析时出现了冲突。在启动程序时,确保没有重复指定`--batch_size`选项,或者检查你...

    利用Flex技术实现消息通讯、账号重复登录、一台电脑只允许一个账号登录等问题

    } catch (error:ArgumentError) { ExternalInterface.call("sendToJavaScriptXiaXian_out"); } } ``` 通过以上步骤,我们不仅可以实现消息通讯的功能,还可以有效地管理账号的登录状态,确保了系统的安全性和...

    specs:yy规格

    expect { Eyeglasses.new(lens_material: 'invalid') }.to raise_error(ArgumentError) end end end ``` 在这个例子中,`Eyeglasses`可能是处理眼镜规格的类,而测试确保了框架尺寸的正确解析和镜片材料的有效...

Global site tag (gtag.js) - Google Analytics