MovieClip 类的 hitTest()
方法可以检测 SWF 文件中的冲突。它检查某个对象是否与影片剪辑有冲突,然后返回一个布尔值(true
或 false
)。
在两种情况下,您想知道是否已经发生了冲突:一种情况是测试用户是否已经到达舞台上的某个特定静态区域,另一种情况是确定影片剪辑何时接触到另一个影片剪辑。利用 hitTest()
方法,可以判定这些结果。
可以使用 hitTest()
的参数来指定舞台上某个点击区域的 x
和 y
坐标,或者使用另一个影片剪辑的目标路径作为点击区域。在指定 x
和 y
时,如果由 (x
, y
) 标识的点是非透明点,那么hitTest()
返回 true
。当目标传递给 hitTest()
时,会对两个影片剪辑的边框进行比较。如果它们重叠,则 hitTest()
返回 true
。如果两个边框没有相交,则 hitTest()
返回 false
。
让鼠标指针滑过 SWF 文件中的形状来测试冲突。hitTest()
方法的结果会返回到文本字段中。
您也可以使用 hitTest()
来测试两个影片剪辑之间的冲突。
要测试冲突,则拖动汽车影片剪辑,使它接触停车区域影片剪辑。hitTest()
方法的结果会返回到文本字段中。
下面的步骤通过使用汽车示例介绍如何检测冲突。
box
作为实例名称。status
作为实例名称。box.onEnterFrame = function () { status.text = this.hitTest(_xmouse, _ymouse, true); }
只要鼠标位于不透明的像素上方,就会显示值 true
。
car
和 area
。status
作为实例名称。area.onEnterFrame = function () { status.text=this.hitTest(car); } car.onPress = function (){ this.startDrag(false); updateAfterEvent(); } car.onRelease = function () { this.stopDrag(); }
只要汽车边框与停车区域的边框发生相交,该状态就会变为 true
。
有关更多信息,请参见MovieClip.hitTest()
。