hitTest的用法 |
| 作者:佚名 来源:闪吧 作者: hjkloppiu 更新:2007-1-13 20:48:40 错误报告 我要投稿 |
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; } } } 为了界面美观,我给图片层增加了遮照,好,现在可以测试了。
[全屏欣赏]
我们在来做一个点蜡烛的动画,这个动画很简单,也是用到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,就是只要火柴和蜡烛相接触,蜡烛就会点燃。
[全屏欣赏]
我现在想到的解决办法是做成一个隐形按钮,在按钮上添加: on(rollOver){ play(); }
帧上的动作改为: startDrag("fire",true); Mouse.hide();
[全屏欣赏]
然后我们做一个点不着的蜡烛,当然这些程序还不是很完善,只是一般性的能实现这个功能而已。 在场景中放一个蜡烛电影剪辑(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; }
[全屏欣赏]
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |