[AS3]as3下hit的检测
2012-02-06 12:15:35 来源:本站整理核心提示:在以前的as版本中,hit检测是使用MovieClip.hitTest的方法,有两种使用方法:用法 1:根据 shapeFlag 设置,将 x 和 y 坐标与指定实例的形状或边框进行比较,[AS3]as3下hit的检测,如果 shapeFlag 设置为 true,则只计算在舞台上的实例实际占据的区域,用法 2:计算 t
在以前的as版本中,hit检测是使用MovieClip.hitTest的方法,有两种使用方法:
用法 1:根据 shapeFlag 设置,将 x 和 y 坐标与指定实例的形状或边框进行比较。如果 shapeFlag 设置为 true,则只计算在舞台上的实例实际占据的区域,并且如果 x 和 y 在任意一点重叠,则返回 true 值。此评估对于确定影片剪辑是否处于指定的点击区域或热点区域中很有用。
用法 2:计算 target 和指定实例的边框,如果它们在任意一点上重叠或交叉,则返回 true。
在as3中把这个方法分开了,分为hitTestPoint(用法 1)和hitTestObject(用法 2),其实在使用方法上还是跟以前的一样.同时增加了getObjectsUnderPoint(areInaccessibleObjectsUnderPoint)方法,可以获取在某个point下所有的子对象.
虽然增加了一个检测的方法,但是,还是没有需要的两个对象的边缘(实际象素)hit的检测,hitTestObject是按照对象所占的矩形区域来做的检测.虽然有hitArea,但是也是针对hitTestPoint使用的.
那么,怎么办呢? 如果对于规则的对象,可以利用几何关系来判断,其中一个是规则对象就用几何关系+hitTestPoint使用,可是,对于两个不规则对象的hit检测,怎么来确定呢?
双重的hitTestPoint循环?
- for(var i=0;i<w;i++)
- for(var j=0;j<h;j++)
- {
- if(a.hitTestPoint(mouseX,mouseY,true)&&b.hitTestPoint(mouseX,mouseY,true))
- trace("hit");
- }
- ››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写成文件并存档
更多精彩
赞助商链接