public hitTest() : Boolean
计算影片剪辑,以确认其是否与由 target
或 x
和 y
坐标参数标识的点击区域发生重叠或相交。
用法 1:根据 shapeFlag
设置,将 x 和 y 坐标与指定实例的形状或边框进行比较。如果 shapeFlag
设置为 true
,则只计算在舞台上的实例实际占据的区域,并且如果 x 和 y 在任意一点重叠,则返回 true
值。此评估对于确定影片剪辑是否处于指定的点击区域或热点区域中很有用。
用法 2:计算 target
和指定实例的边框,如果它们在任意一点上重叠或交叉,则返回 true
。
参数 x: Number
舞台上点击区域的 x 坐标。y: Number
舞台上点击区域的 y 坐标。x 和 y 坐标都在全局坐标空间中定义。shapeFlag: Boolean
一个布尔值,指定是计算指定实例的整个形状 (true
) 还是仅计算边框 (false
)。只有当用 x
和 y
坐标参数标识点击区域时,才可以指定该参数。target: Object
可能与影片剪辑相交或重叠的点击区域的目标路径。target
参数通常表示一个按钮或一个文本输入字段。
可用性:ActionScript 1.0;Flash Player 5
Boolean
- 一个布尔值,如果影片剪辑与指定点击区域重叠,则为 true
,否则为 false
。
以上的内容是FLASH8帮助里对hitTest()的说明,看起来不好理解,但这个函数在实际运用的时候很简单,下面我们将通过一个简单的实例来说明这个函数;
先在主场景是分层放置三个元素,两个MC,一个动态文本框分另取名;MC分别叫a_mc;b_mc 动态文本的实例名为tt_txt,就这么取名吧。
然后我们在b_mc上加动作:
onClipEvent (load) {
startDrag(this, true);
}
onClipEvent (enterFrame) {
if (this.hitTest(_root.a_mc)) {
setProperty(this, _alpha, 50);
_root.tt_txt.text = "碰到了!";
} else {
setProperty(this, _alpha, 100);
_root.tt_txt.text = "没有碰到";
}
}
这个实例到这里就完成了,祝你们成功;