* component *
* for mx 2k4 *
监测和实现碰撞的平板组件。
preview:
点击浏览该文件
componet mxp & samplesource file(fla)
点击浏览该文件
使用方法:将组件放入场景,通过as设置检测碰撞的对象,并需要用程序控制碰撞的监测。碰撞检测的结果通过事件来
处理。
组件本身只提供了基本的监测功能,具体的需求需要利用事件处理编写更多的代码。
设置对象:
comp_instance.addTarget(target_mc:MovieClip);监测1次碰撞
:_global.refreshReflector();使能:事件列表:
组件参数设置:

clipName:用于显示视觉效果的元件连接名
doubleSide:是否检测来自两侧的碰撞
e:弹性系数,当碰撞发生时,根据这个系数确定target_mc的运动。>0则反弹,<0则穿过。 xforce: 当碰撞时,附加给target_mc的力,沿平板切线。 yforce: '' '' ''.... 沿平板法向。 属性: top, left, right, bottom xMax,xMin: 以及同组件参数名的对应属性也可以直接访问。 方法: removeTarget(o:MovieClip):Void enableMe(e:Boolean):Void testCollision():Void isPassed(v1,v2):Boolean update():Void clip事件: onXXX事件: 这几个事件的含义同上,不同在于带有eventObject的参数,eventObject有3个属性: type:事件名字,如'onHit' 监听: removeEventListener(..) 选中p,输入 选中r1,输入: 运行可以看到碰撞的效果,具体见示例源文件
enabled: 使能
f: 摩擦系数,当碰撞发生时,根据这个系数确定target_mc的运动。建议取值0
clipIns: 视觉效果的mc的引用
范围,相对于comp_ins的父坐标系。
板的宽度,相对于comp_ins自己的坐标系。
addTarget(o:MovieClip):Void
添加1个被监测的对象。被添加的对象将自动监听碰撞产生的onHit,onCollide,onPassed事件
删除1个被检测的对象。
使能
检测所有的对象是否发生碰撞。
检测运动前后的两个点是否穿过平板,v1(x,y)/v2(x,y)。
刷新范围变量(top,bottom,left,right,xMin,xMax)。
on(hit)当target_mc接触平板时触发,不论target_mc是否反弹或穿过。
on(collide)当target_mc反弹平板时触发。
on(passed)当target_mc穿过平板时触发。
onHit
onCollide
onPassed
target:发出事件的对象,如comp_ins
hitPosition:碰撞发生的x坐标,相对于comp_ins坐标系。
addEventListener(type:String,target:Object)
很熟,不介绍了。
也很熟。
例子:场景中有1个reflector的实例r1,1个名为p的实例,作为碰撞对象。
onClipEvent(load){
_root.r1.addTarget(this);
this.onHit=function(eo){
trace(eo.target);
}
}
onClipEvent(enterFrame){
_x+=(_root._xmouse-_x)*.2;
_y+=(_root._ymouse-_y)*.2;
_global.refreshReflector();
}
onClipEvent(load){
this.rv=2;
this.onHit=function(eo){
this.rv=eo.hitPosition*.1;
}
}
onClipEvent(enterFrame){
this._rotation+=this.rv;
this.rv*=.97;
}
点击浏览该文件
共有 0 位网友发表了评论,得分 0 分,平均 0 分 查看完整评论