varoldM_x=_root._xmouse; varoldM_y=_root._ymouse; ax=aa._x; ay=aa._y; dis=Math.sqrt((oldM_x-ax)*(oldM_x-ax)+(oldM_y-ay)*(oldM_y-ay)); xa=(oldM_x-ax)/dis; ya=(oldM_y-ay)/dis; amove(); }; functionamove(){ onEnterFrame=function(){ aa._x+=s*xa; aa._y+=s*ya; if(Math.sqrt((aa._x-ax)*(aa._x-ax)+(aa._y-ay)*(aa._y-ay))>dis){ deleteonEnterFrame; } }; } 计算两个对象之间/两点之间的距离(注册点) 以下是引用片段: functiongetDistanceOf(target1,target2,x2,y2){ if(arguments.length==4){ dx=x2-target1; dy=y2-target2; }elseif(arguments.length==2){ dx=target2._x-target1._x; dy=target2._y-target1._y; } returnMath.sqrt(dx*dx+dy*dy); } //Arguments 对象是一个数组,其中包含作为参数传递给任何函数的值。每次在动作脚本中调用函数时,都会为该函 数自动创建 Arguments 对象。同时还会创建一个局部变量 arguments,使您可引用 arguments 对象。 让播放的MC暂停一段时间 以下是引用片段: functionpausePlay(sec){ pfunc=function(){ this.play(); clearInterval(this.pint); } stop(); this.pint=setInterval(this,"pfunc",sec*1000); } //这样调用.sec是暂停的时间,单位是秒. pausePlay(2); onHitTest(target),自己写的一个MC事件,当该MC与指定的MC hitTest的时候触发事件.其实也没什么特别的地方,一样也是用setInterval来实现 以下是引用片段: stop(); MovieClip.prototype.listen=function(target){ if(this.isHiting==undefined){ this.isHiting=this.hitTest(target); } if(this.hitTest(target)){ if(this.isHiting==false){ this.broadcastMessage("onHitTest",this,target);//广播事件,给事件传递this和target两个参数 |