欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Flash游戏开发常用函数代.doc

    • 资源ID:47848276       资源大小:43KB        全文页数:27页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Flash游戏开发常用函数代.doc

    .1/27FlashFlash 游戏开发常用函数代游戏开发常用函数代游牧人游牧人 2 2类型类型:闪吧闪吧 BBSBBS来源来源:闪吧闪吧对象数组比如要构建一个有很多属性的数组,简单的可以这样做:2004 代码:var a:Array=new Array();for(var i=0;i10;i+)ai=new Object();ai.x=10;ai.y=10*i;ai.name=-;ai.id=i;/随便你给什么属性啊。/先用局部变量存储对象会更好一点。var a=new Array()for(var i=0;i10;i+)var ta=new Object();ta.x=10;ta.y=10;ta.name=n+i;a.push(ta);.2/27/或者更简便一点的方法:var a=new Array()for(var i=0;i10;i+)ai=x:10,y:10,name:n+i程序控制角色运动下面这段代码控制 MovieClip mc 从(50,50)横向运动到(100,50)停止,速度为 5 pixel:mc._x=mc._y=50;mc.onEnterFrame=function()_x+=5;trace(_x);if(_x=100)delete(mc.onEnterFrame);精确计时我们设定了时间为 60 秒,然后通过 setInterval 来定期(每 1000milliseconds)触发一个函.3/27数 runTimer。function runTimer 用来计时,当时间到了以后,转去执行 outThere。function outThere 用来处理时间到了以后的动作,不要忘记 clearInterval(intervalID),停止计时。var time:Number=60;var intervalID:Number;intervalID=setInterval(runTimer,1000);function runTimer()time-;trace(time);if(time=0)outThere();function outThere()/blah blah blahclearInterval(intervalID);找到目前最小的一个可用的深度 Depth(来自国外)针对 Flash Player 6 的:.4/27availTopDepth=function()var allDepths=;for(var z in _root)if(_rootz instanceof Button|_rootz instanceof MovieClip|_rootz instanceof TextField)allDepths.push(_rootz.getDepth();if(allDepths.length!=0)sortAll=function(a,b)if(ab)return 1;else return 0;allDepths.sort(sortAll);return(parseInt(allDepthsallDepths.length-1)+1);trace(_root.availTopDepth();放置一个 MovieClip 在 Stage,再执行这段 Action 就会得到最近的一个可用深度。我们也可以用这个来创建绝对不会出问题的 MovieClip,比如:_root.createEmptyMovieClip(mc_name,availTopDepth();getNextHighestDepth()以与 getInstanceAtDepth(depth)是 for player 7 的。.5/27鼠标消隐鼠标消隐之后,右健弹出菜单,鼠标就又出现了,并且一直保留着完整的解决方法是:在 左健抬起、右健第二次抬起、回车键抬起的时候再次消隐鼠标。完整的方法比较复杂,下面是一个简单的解决方法,可以解决绝大多数的问题:onEnterFrame=function()if(Key.isDown(1)|Key.isDown(Key.ENTER)Mouse.hide();我常用的一个加速度移动的代码/以下代码放到主场景第一帧stop();_global.a=5;/移动加速度,越大越慢_global.click_x=0;/用来记录点击鼠标的位置_global.click_y=0;_root.onMouseDown=function()_global.click_x=_root._xmouse;.6/27_global.click_y=_root._ymouse;/me 是受控 mc 的 instance nameme.onEnterFrame=function()if(Math.abs(_global.click_x-me._x)2&Math.abs(_global.click_y-me._y)1000|Number(a_v.text)0)/default valuea_v.text=5;else _global.a=Number(a_v.text)?Number(a_v.text):5;.7/27/trace(_global.a);随机输出 1 到 100 而不从复的语句seq=new Array(100);pArray=new Array(100);function makeRandom()for(i=1;i=100;i+)seqi=A;function mRandom()while(true)n=int(random(100)+1;if(seqn=A)seqn=0;break;return(n);.8/27function rArray()for(i=1;idis)delete onEnterFrame;.13/27计算两个对象之间/两点之间的距离(注册点)function getDistanceOf(target1,target2,x2,y2)if(arguments.length=4)dx=x2-target1;dy=y2-target2;else if(arguments.length=2)dx=target2._x-target1._x;dy=target2._y-target1._y;return Math.sqrt(dx*dx+dy*dy);/Arguments 对象是一个数组,其中包含作为参数传递给任何函数的值。每次在动作脚本中调用函数时,都会为该函数自动创建 Arguments 对象。同时还会创建一个局部变量 arguments,使您可引用 arguments 对象。让播放的 MC 暂停一段时间function pausePlay(sec)pfunc=function().14/27this.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 两个参数.15/27this.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,一旦击中触发事件 onHitTestball.onEnterFrame=function()this._x+=5;/让 ball 不断往右方移动工myListener=new Object();.16/27myListener.onHitTest=function(source,target)trace(The +source._name+hit +target._name+.);ball.addListener(myListener);/创建监听员并注册给 ballball.watch(wall);/让 ball 监视 wallMD5 32 位码的 FLASH 算法/-function md5(s)return binl2hex(core_md5(str2binl(s),s.length*strsize);function core_md5(x,len)xlen 5=(xlen 5)|(128 9)16)+(y 16)+(lsw 16);return(msw 16)|(lsw&65535);function bit_rol(num,t)return(num (32-cnt);function str2binl(str)var bin=Array();var mask=(1 strsize)-1;var i=0;while(i 5=(bini 5)|(str.charCodeAt(i/strsize)&mask)i%32);i=i+strsize;return bin;function binl2hex(binarray)if(hexcase)else.22/27var hex_tab=0123456789abcdef;var str=;var i=0;while(i 2)(i%4*8)+4)&15)+hex_tab.charAt(binarrayi 2)(i%4*8)&15);i+;return str;var hexcase=0;var strsize=8;/-以上不用修改,b=md5(xx);/xx 可设为任意字符s=b.toUpperCase();/转换成大写trace(b);trace(s);.23/27发点缓动函数Math.linearTween=function(t,b,c,d)return c*t/d+b;/线性运动函数Math.easeInQuad=function(t,b,c,d)return c*(t/=d)*t+b;/二次缓入函数Math.easeOutQuad=function(t,b,c,d)return-c*(t/=d)*(t-2)+b;/二次缓出函数Math.easeINOutQuad=function(t,b,c,d)if(t/=d/2)1)return c/2*t*t+b;return-c/2*(-t)*(t-2)-1)+b;/二次缓入缓出函数.24/27Math.easeInCubic=function(t,b,c,d)return c*Math.pow(t/d,3)+b;/三次缓入函数Math.easeOutCubic=function(t,b,c,d)return c*(Math.pow(t/d-1,3)+1)+b;/三次缓出函数Math.easeINOutCubic=function(t,b,c,d)if(t/=d/2)1)return c/2*Math.pow(t,3)+b;return c/2*(Math.pow(t-2,3)+2)+b;/三次缓入缓出函数Math.easeInQuart=function(t,b,c,d)return c*Math.pow(t/d,4)+b;/四次缓入函数Math.easeOutQuart=function(t,b,c,d)return-c*(Math.pow(t/d-1,4)-1)+b;.25/27/四次缓出函数Math.easeINOutQuart=function(t,b,c,d)if(t/=d/2)1)return c/2*Math.pow(t,4)+b;return-c/2*(Math.pow(t-2,4)-2)+b;/四次缓入缓出函数Math.easeInQuint=function(t,b,c,d)return c*Math.pow(t/d,5)+b;/五次缓入函数Math.easeOutQuint=function(t,b,c,d)return c*(Math.pow(t/d-1,5)+1)+b;/五次缓出函数Math.easeINOutQuint=function(t,b,c,d)if(t/=d/2)1)return c/2*Math.pow(t,5)+b;return c/2*(Math.pow(t-2,5)+2)+b;.26/27/五次缓入缓出函数Math.easeInSine=function(t,b,c,d)return c*(1-Math.cos(t/d*(Math.PI/2)+b;/正弦缓出函数Math.easeOutSine=function(t,b,c,d)return c*Math.sin(t/d*(Math.PI/2)+b;/正弦缓出函数Math.easeINOutSine=function(t,b,c,d)return c/2*(1-Math.cos(Math.PI*t/d)+b;/正弦缓入缓出函数Math.easeInExpo=function(t,b,c,d)return c*Math.pow(2,10*(t/d-1)+b;/指数缓入函数Math.easeOutExpo=function(t,b,c,d)return c*(-Math.pow(2,-10*t/d)+1)+b;/指数缓出函数Math.easeINOutExpo=function(t,b,c,d).27/27if(t/=d/2)1)return c/2*Math.pow(2,10*(t-1)+b;return c/2*(-Math.pow(2,-10*-t)+2)+b;/指数缓入缓出函数Math.easeInCirc=function(t,b,c,d)return c*(1-Math.sqrt(1-(t/=d)*t)+b;/圆形缓入函数Math.easeOutCirc=function(t,b,c,d)return c*Math.sqrt(1-(t=t/d-1)*t)+b;/圆形缓出函数Math.easeINOutCirc=function(t,b,c,d)if(t/=d/2)1)return c/2*(1-Math.sqrt(1-t*t)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;/圆形缓入缓出函数

    注意事项

    本文(Flash游戏开发常用函数代.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开