快速业务通道

Flash游戏制作常用代码解析

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-14
中(2)还可以替换为keyUp事件.

  附:键码值表
字母和数字键的键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
  A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57
  ?
数字键盘上的键的键码值(keyCode) 功能键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
  0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102   . 110 ? ? ? ?
7   103 / 111 ? ? ? ?
  ?
控制键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Down Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 \| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow 38 ,< 188 ''" 222

  5.检测碰撞(hitTest)   目前我们见到的射击游戏或打老鼠之类的游戏很多都利用了hitTest,hitTest既可以检测MC与MC的碰撞,也可以检测鼠标与MC的碰撞,看下面的例子(例3):














例3 源代码下载
  hitTest的语法如下:   (1)myMovieClip.hitTest(x,y,shapeFlag)    这用来检测鼠标的碰撞,x和y分别代表鼠标的横纵坐标,shapeFlag用来规定检测以MovieClip的最大边界为限或以MovieClip的实际边界为限.请参看例4.

   在例3中用按钮转换shapeFlag的值,在属性文本框中将反映转换的结果,当属性为true时,鼠标只有在测试MC的红色区域时,碰撞才显示true。而当属性为false时,只要鼠标在测试MC的范围内,碰撞就显示true,无论是在红色区域还是内部的白色区域。

例4 源代码下载
   (2)myMovieClip.hitTest(target)    检测MC之间的碰撞,应用起来十分简单,具体内容请参考例3
  6.MC的复制与卸载   MC的复制,顾名思义就是产生出一个与目标相同的MC(除了name和depth以外),语法为:duplicateMovieClip(target,newname,depth) target:被复制目标的名称;
newname:复制出的MC的名称;
depth:复制出的MC的深度.   需要注意,复制出来的新MC的name最好不要相同,也不要与被复制的MC的相同,因为这样会给控制带来不可预期的麻烦;另外depth也是一个相当重要的参数,如果新复制出的MC与前面某个复制的MC的depth属性相同(即位于通一深度),那么先前被复制的MC将被新复制的MC替换掉(不管他们是否属于同一被复制目标),这个特性经常被我用来制作鼠标跟随的效果,即炫又简单,你试试:)   再来说说MC的卸载,大家对这个MC的复制的"双胞胎兄弟"的重视程度好像远不如他的"兄长",因为我经常在论坛中看到类似于"为什么复制出的MC在跳到其他帧,甚至到其他场景后依然存在?"的问题,其实解决方法很简单,就是MC的卸载:   removeMovieClip(target);   只要将要被卸载的MC的name替换掉语句中的target就可以成功的完成卸载任务。
  7.获取影片运行时间   getTimer();   这个函数用以返回自影片开始播放时起已经过的毫秒数,虽然是个很简单的函数,但用利用率却很高,尤其是在一些需要计时的游戏中。

  需要说明的是:毫秒与秒的计算公式为1毫秒=1/1000秒;函数以影片第一次播放的开始时刻为0,不受任何其他因素影响,也就是说如果你想从头开始计时,那么只有重起player,或者定义一个变量来存放getTimer的值,然后用getTimer与变量做减法运算

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号