[AS2]Flash中hitTest和hitTestPoint的替代
2012-02-06 12:14:41 来源:本站整理核心提示:在开发Flash过程中,发现对于加载进来的SWF,[AS2]Flash中hitTest和hitTestPoint的替代,无法直接使用hitTest和hitTestPoint这类方法直接判断某个像素是否透明后来从这个bloghttp://dougmccune.com/blog/2007/02/03/using-hitte
在开发Flash过程中,发现对于加载进来的SWF,无法直接使用hitTest和hitTestPoint这类方法直接判断某个像素是否透明
后来从这个blog
http://dougmccune.com/blog/2007/02/03/using-hittestpoint-or-hittest-on-transparent-png-images/#comment-47931
发现了一个解决方案,跟我想的一样,但是效率稍微有点差
简单说,这个解决方案就是将DisplayObject绘制到一个BitmapData上,然后根据像素值判断
我的改进方案就是只绘制一个像素到BitmapData上,而不是绘制全部
经过测试,对于150*100尺寸的SWF,优化后的方案每秒可以测试2万次,没有优化的方案1万次。
源码如下
- public static function realHitTest(object:DisplayObject, point:Point):Boolean {
- var bmapData:BitmapData = new BitmapData(1, 1, true, 0x00000000);
- var m:Matrix = new Matrix();
- var localPt:Point = object.globalToLocal(point);
- m.tx = -localPt.x;
- m.ty = -localPt.y;
- bmapData.draw(object, m);
- var returnVal:Boolean = bmapData.hitTest(new Point(0,0), 128, new Point(0, 0));
- bmapData.dispose();
- return returnVal;
- }
- ››asp.net页面弄成伪静态页面
- ››Asp.net 中将汉字转换成拼音的方法
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
赞助商链接