网站制作学习网Flash→正文:flash撞击/碰撞事件hitTestObject
字体:

flash撞击/碰撞事件hitTestObject

Flash 2011/8/2 19:03:02  点击:不统计


在as中做碰撞/撞击事件用的是函数hitTestObject,下面写一下该事件的语法,以及做了一个简单的案例
语法:
Object1.hitTestObject(objest2); 返回值为 为布尔值Boolean;
下面做了一个例子,在例子中拉动的是影片剪辑,不是按钮,按钮不具有startDrag方法。这一点一定要注意。这里的撞击和碰撞是只要对象内容有重合接触则触发事件。
其中foraspcn为 6帧的影片剪辑

var $num:Number=6;//这里定义了6个影片剪辑,为方便直接循环加事件
var a_x;
var a_y;
for(var $i:uint=1;$i<$num;$i++){
this["a"+$i].addEventListener(MouseEvent.MOUSE_DOWN,M);//给每一个影片剪辑加上了鼠标按下事件
this["a"+$i].addEventListener(MouseEvent.MOUSE_UP,S);//当鼠标放开,则进行S事件
this["a"+$i].addEventListener(MouseEvent.MOUSE_MOVE,O);//进行移动时的事件检测
this["a"+$i].num = $i;
}
function M(me:MouseEvent):void{//当鼠标按下后,获取原始位置,并设置可以拖动
a_x = me.target.x;
a_y = me.target.y;
me.target.alpha=0.5;
me.target.startDrag();
}
function O(me:MouseEvent):void{//当移动时
if(me.target.hitTestObject(foraspcn)){//进行碰撞检测,返回为true时
me.target.x = a_x;//影片剪辑返回,并停止拖放,将被撞击对象进行处理
me.target.y = a_y;
me.target.alpha=1;
me.target.stopDrag();
foraspcn.gotoAndStop(me.target.num);
}
}
function S(me:MouseEvent):void{//首先将原来坐标赋予该对象,然后停止拖拽
me.target.x = a_x;
me.target.y = a_y;
me.target.alpha=1;
me.target.stopDrag();
}
stop();
测试一下hitTestObject 碰撞/撞击事件的效果吧:


http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E

·上一篇:actionScript控制影片剪辑属性 >>    ·下一篇:actionscript3.0 对象管理函数 >>
推荐文章
最新文章