本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2005-12-26 · 原址 http://flash8.net/teach/3882.htm ← Flash 保存计划

如何编写物体碰撞检测的语句?

作者:闪吧   类型:原创   来源:闪吧

  

如何编写物体碰撞检测的语句?
解决思路
本例的思路为拖拽影片剪辑,然后利用一个条件语句判断是否与另一个影片剪辑接触,并在文本中显示。
具体步骤
我们用一个例子来解释。
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。用它来作为条件来显示文本的对应文本。

   责任编辑:kissall    时间:2005年8月29日

正在加载评论...