reflector 碰撞平板
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
reflector 碰撞平板 * component * * for mx 2k4 * 监测和实现碰撞的平板组件。 preview: 点击浏览该文件 componet mxp & sample source file(fla) 点击浏览该文件 使用方法:将组件放入场景,通过as设置检测碰撞的对象,并需要用程序控制碰撞的监测。碰撞检测的结果通过事件来 处理。 组件本身只提供了基本的监测功能,具体的需求需要利用事件处理编写更多的代码。 设置对象: comp_instance.addTarget(target_mc:MovieClip); 监测1次碰撞 :_global.refreshReflector(); 使能:事件列表: on(hit) on(collide) on(passed) 组件参数设置: clipName: 用于显示视觉效果的元件连接名 doubleSide: 是否检测来自两侧的碰撞 e: 弹性系数,当碰撞发生时,根据这个系数确定target_mc的运动。>0则反弹,<0则穿过。 enabled: 使能 f: 摩擦系数,当碰撞发生时,根据这个系数确定target_mc的运动。建议取值0 范围,相对于comp_ins的父坐标系。 xMax,xMin: 板的宽度,相对于comp_ins自己的坐标系。 以及同组件参数名的对应属性也可以直接访问。 方法: addTarget(o:MovieClip):Void 添加1个被监测的对象。被添加的对象将自动监听碰撞产生的onHit,onCollide,onPassed事件 removeTarget(o:MovieClip):Void 删除1个被检测的对象。 enableMe(e:Boolean):Void 使能 testCollision():Void 检测所有的对象是否发生碰撞。 isPassed(v1,v2):Boolean 检测运动前后的两个点是否穿过平板,v1(x,y)/v2(x,y)。 update():Void 刷新范围变量(top,bottom,left,right,xMin,xMax)。 clip事件: on(hit) 当target_mc接触平板时触发,不论target_mc是否反弹或穿过。 on(collide) 当target_mc反弹平板时触发。 on(passed) 当target_mc穿过平板时触发。 onXXX事件: onHit onCollide onPassed 这几个事件的含义同上,不同在于带有eventObject的参数,eventObject有3个属性: type: 事件名字,如''onHit'' target: 发出事件的对象,如comp_ins hitPosition: 碰撞发生的x坐标,相对于comp_ins坐标系。 监听: addEventListener(type:String,target:Object) 很熟,不介绍了。 removeEventListener(..) 也很熟。 例子:场景中有1个reflector的实例r1,1个名为p的实例,作为碰撞对象。 选中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(); } 选中r1,输入: onClipEvent(load){ this.rv=2; this.onHit=function(eo){ this.rv=eo.hitPosition*.1; } } onClipEvent(enterFrame){ this._rotation+=this.rv; this.rv*=.97; } 运行可以看到碰撞的效果,具体见示例源文件 点击浏览该文件 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 用FLASH做简单MP3播放器下一篇: 文字转换为按钮的效果
关于reflector 碰撞平板的所有评论