宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3下hit的检测

2016-10-13 00:16:48 点击量:17 标签: 收藏本文

  在以前的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循环?

  1. for(var i=0;i<w;i++)  
  2. for(var j=0;j<h;j++)  
  3. {  
  4. if(a.hitTestPoint(mouseX,mouseY,true)&&b.hitTestPoint(mouseX,mouseY,true))  
  5. trace("hit");  

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室