快速业务通道

Flash游戏开发常用函数代

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-08
iongetDistanceOf(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与指定的MChitTest的时候触发事件.其实也没什么特别的地方,一样也是用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


■■■MD532位码的FLASH算法
//-----------
functionmd5(s){
returnbinl2hex(core_md5(str2binl(s),s.length*strsize));
}
functioncore_md5(x,len){
x[len>>5]=(x[len>>5])|(128<<len%32);
x[(((len+64)>>>9)<<4)+14]=len;
vara=1732584193;
varb=-271733879;
varc=-1732584194;
vard=271733878;
vari=0;
while(ivarolda=a;
varoldb=b;
varoldc=c;
varoldd=d;
a=md5_ff(a,b,c,d,x[i+0],7,-680876936);
d=md5_ff(d,a,b,c,x[i+1],12,-389564586);
c=md5_ff(c,d,a,b,x[i+2],17,606105819);
b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);
a=md5_ff(a,b,c,d,x[i+4],7,-176418897);
d=md5_ff(d,a,b,c,x[i+5],12,1200080426);
c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);
b=md5_ff(b,c,d,a,x[i+7],22,-45705983);
a=md5_ff(a,b,c,d,x[i+8],7,1770035416);
d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);
c=md5_ff(c,d,a,b,x[i+10],17,-42063);
b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);
a=md5_ff(a,b,c,d,x[i+12],7,1804603682);
d=md5_ff(d,a,b,c,x[i+13],12,-40341101);
c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);
b=md5_ff(b,c,d,a,x[i+15],22,1236535329);
a=md5_gg(a,b,c,d,x[i+1],5,-165796510);
d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);
c=md5_gg(c,d,a,b,x[i+11],14,643717713);
b=md5_gg(b,c,d,a,x[i+0],20,-373897302);
a=m

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号