如何编写物体碰撞检测的语句?
作者:闪吧 类型:原创 来源:闪吧
如何编写物体碰撞检测的语句?
解决思路
本例的思路为拖拽影片剪辑,然后利用一个条件语句判断是否与另一个影片剪辑接触,并在文本中显示。
具体步骤
我们用一个例子来解释。
1、 运行Flash MX 2004,文档属性默认。
2、 需要制作两个影片剪辑,第1个为运动物体。这个事例采用了一个运动的蚂蚁的影片剪辑。如图3.3.6所示。

图3.3.6 影片剪辑“蚂蚁运动”
3、绘制一个“井”的影片剪辑。如图3.3.7所示。

图3.3.7 影片剪辑“井”
4、 回到场景1,把影片剪辑“蚂蚁运动”拖放到舞台,并在属性面板中命名为“z”。如图3.3.8所示。

图3.3.8 设置影片剪辑的实例名
5、 把影片剪辑“下水井”拖放到舞台中,在属性面板中命名为“x”。如图3.3.9所示。

图3.3.9 设置影片剪辑的实例名
6、还要制作一个提示语言,在主场景中利用动态文本建立一个文本框。文本变量为“txt”。如图3.3.10所示

图3.3.10 建立动态文本
7、单击影片剪辑“蚂蚁运动”,打开AS面板,添加如下语句:
onClipEvent (mouseDown) {
this.startDrag(true);
}
onClipEvent (mouseUp) {
stopDrag(); //停止拖动
}
onClipEvent (enterFrame) {
if (this.hitTest(_root.x)) {
_root.txt = "危险";
} else { //否则
_root.txt = "GO";
}
}
1、 AS解释如下:
onClipEvent (mouseDown) { //点击鼠标左键时
this.startDrag(true); // 开始拖动本影片剪辑
}
onClipEvent (mouseUp) { //释放鼠标左键时
stopDrag(); //停止拖动
}
onClipEvent (enterFrame) { //当本影片剪辑被加载时
if (this.hitTest(_root.x)) { //如果本影片剪辑与X碰撞
_root.txt = "危险"; //输出结果为 “危险”
} else { //否则
_root.txt = "GO"; //输出结果为 “GO”
}
}
9、保存,测试。请参看源文件“检测物体接触”。
特别说明
关键的一句AS为:this.hitTest(_root.x),用来监测是否接触到了影片剪辑x。用它来作为条件来显示文本的对应文本。
- 最近更新
