import flash.utils.Timer; import flash.events.TimerEvent; //记录是否需要加入时间侦听 var count:int; //时间事件 var timer:Timer; //物体的速度 var speed:Number; //记录物体最初的速度 var initSpeed:int; //A碰到B之后增加的速度 var addSpeed:Number; //A碰到B之后加速度持续的时间 var numTimer:Number; //判断A是否碰到B function hit():void { if (A.hitTestObject(B)) { if (count == 0) { speed += addSpeed; timer = new Timer(1000,numTimer); timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete); timer.start(); } count++; } } //判断A加速度持续的时间是否完成 function onTimerComplete(e:TimerEvent):void { count--; timer.reset(); timer.removeEventListener(TimerEvent.TIMER,onTimerComplete); recoverSpeed(); } //判断A加速度持续的时间是否完成,完成之后速度变为初始速度 function recoverSpeed():void { if (count != 0) { timer = new Timer(1000,numTimer); timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete); timer.start(); } else { speed = initSpeed; } }