本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2006-07-08 · 原址 http://www.flash8.net/teach/985.htm ← Flash 保存计划

hitTest的用法

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

  hitTest是用来检测两个物体或目标是否重叠和相交,如果相交或重叠,就执行相应的动作,这对于我们做一些互动的动画和游戏是非常有用。比如在做点蜡烛和放炮的动画时,就可以用hitTest的方法。



今天我想说的是一个用电影剪辑控制电影剪辑运动的例子。
首先我们需要两个电影剪辑,一个是图片(mc),一个是箭头(arrow),做好后,放到场景中。
新建一层,加入动作:
arrow.onEnterFrame=function(){
if(this.hitTest(_root._xmouse,_root._ymouse)){
_root.mc._x+=5;
if(_root.mc._x>150){
_root.mc._x=0;
}
}
}
为了界面美观,我给图片层增加了遮照,好,现在可以测试了。
点击开新窗口欣赏该FLASH动画![全屏欣赏]



我们在来做一个点蜡烛的动画,这个动画很简单,也是用到hitTest的用法。
首先我们做两个电影剪辑,一个是蜡烛(mc),一个是火柴(fire)。
然后我们在帧上添加动作:
startDrag("fire",true);
Mouse.hide();
fire.onEnterFrame=function(){
for(i=1;i<4;i++){
if(this.hitTest(_root["mc"+i])){
_root["mc"+i].play();
}
}
}//这里用mc+i是因为我们在场景中共放了3个蜡烛的电影剪辑。
该动画还有一个bug,就是只要火柴和蜡烛相接触,蜡烛就会点燃。

点击开新窗口欣赏该FLASH动画![全屏欣赏]



我现在想到的解决办法是做成一个隐形按钮,在按钮上添加:
on(rollOver){
play();
}

帧上的动作改为:
startDrag("fire",true);
Mouse.hide();

点击开新窗口欣赏该FLASH动画![全屏欣赏]







然后我们做一个点不着的蜡烛,当然这些程序还不是很完善,只是一般性的能实现这个功能而已。
在场景中放一个蜡烛电影剪辑(mc)和一个火柴电影剪辑(fire);
添加以下动作:
startDrag("fire",true);
Mouse.hide();
fire.onEnterFrame=function(){
if(this.hitTest(_root.mc)){
_root.mc._x=Math.random()*500;
_root.mc._y=Math.random()*300;
}

点击开新窗口欣赏该FLASH动画![全屏欣赏]

























点击浏览该文件

   责任编辑:uufeng    时间:2004年4月8日

正在加载评论...