了解此函数之前我们先了解一下碰撞检测:
碰撞检测有两种模式,第一种是对显示对象所在的矩形包围盒进行检测,另一种是其透明度不为零的区域进行检测。
矩形包围盒很好理解,就是对显示对象建立一个最小的可包容对象的矩形图案,而透明度不为零是相对于舞台来说的,也就是在舞台上有显示的对象。
看看源码解释:
/**
* 计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。x 和 y 参数指定舞台的坐标空间中的点,而不是包含显示对象的显示对象容器中的点(除非显示对象容器是舞台)。
* 注意,不要在大量物体中使用精确碰撞像素检测,这回带来巨大的性能开销
* @param x {number} 要测试的此对象的 x 坐标。
* @param y {number} 要测试的此对象的 y 坐标。
* @param shapeFlag {boolean} 是检查对象 (true) 的实际像素,还是检查边框 (false) 的实际像素。
* @returns {boolean} 如果显示对象与指定的点重叠或相交,则为 true;否则为 false。
* @version Egret 2.4
* @platform Web,Native
* @language zh_CN
*/
hitTestPoint(x: number, y: number, shapeFlag?: boolean): boolean;
hitTestPoint()是一个带三个参数的布尔类型的函数,也就是要测试显示对象的坐标与hitTestPoint()函数设定的坐标是否重合,第三个参数就是设定前面两种方式之间的类型,函数结果返回true(实际像素) or false(边框).