以下是引用片段:
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两个参数
}
this.isHiting=true;
}else{
this.isHiting=false;
}
};//为MovieClip添加域成员listen成员,用于监视当前对象与目标是否碰撞
MovieClip.prototype.watch=function(target){
this.timer=setInterval(this,"listen",50,target);
};//以每50毫秒检测一次的速度来检测是否碰撞
MovieClip.prototype.unWatch=function(){
clearInterval(this.timer);
};//停止对对象的监视
ASBroadcaster.initialize(MovieClip.prototype);//初始化MovieClip原型为事件源
//下面是调用的示例
//假设有两个MovieClip,左边ball,右边wall,让ball不断往wall移动,同时监视wall,一旦击中触发事件onHitTest
ball.onEnterFrame=function(){
this._x+=5;
};//让ball不断往右方移动工
myListener=newObject();
myListener.onHitTest=function(source,target){
trace("The"+source._name+"hit"+target._name+".");
};
ball.addListener(myListener);//创建监听员并注册给ball
ball.watch(wall);//让ball监视wall