快速业务通道

Flash游戏制作常用代码解析

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-14
值向右向下递增,为正值(这与我们通常意义的坐标并不相同);MC的坐标原点是编辑MC时的中心,坐标象限见图1.
  获得MC坐标的方法与上面说的大同小异,我们将在下面的MC属性简介中做介绍。


  3.MC常用属性简介   MC常用的属性大致如下:














属性 用法 说明 可获得 可设置 取值范围
_x
_y
MC._x
MC._y
返回/设置MC的横纵坐标值 Y Y 数值
_xscale
_yscale
MC._xscale
MC._yscale
返回设置MC的x/y轴缩放比例 Y Y 数值
_alpha MC._alpha 返回/设置MC的透明度 Y Y 0-100
_visible MC._visible 返回/设置MC的可见性 Y Y true;false
  _width
_height
MC._width
MC._height
返回/设置MC的宽/高值 Y Y 数值
_rotation MC._rotation 返回/设置MC的角度 Y Y 数值
?_currentframe MC._currentframe? 返回MC的当前帧 Y N -
_totalframes MC._totalframes 返回MC的总帧数 Y N -
_framesloaded MC._framesloaded 返回已下载帧数 Y N -
_name MC._name 返回/设置MC的名称 Y Y -
  具体使用方法参看例2

例2 源代码下载
  需要说明的是MC的_width_height属性是基于场景坐标系的(这就是为什么在旋转MC时其_width_height的值会发生变化的原因);而_xscale_yscale属性则是基于MC自己的坐标系的,拖拽例2中的_xscale_yscale控制柄,会看到MC以自身的坐标进行缩放变化。大家可以在实践中自己体会。
  4.判断按键   既然是游戏,当然就要响应玩家的各种反应,除了鼠标,最直接的就是键盘了。响应键盘无非是判断玩家按下了哪一个键或者组合键,要实现这些其实很简单,我们既可以通过按钮或MC的事件来响应按键,也可以通过帧上的动作来响应,举例说明:   (1)按钮的keyPress方法:   先说按钮,按钮除了响应鼠标的一些动作(如:rollOver,release...)之外还有几个是响应固定按键的(如Enter,Left,Home,PageDown...),下面我们就来制作一个。建立一个按钮,拖到场景中,捆绑下面的AS: on (keyPress "") {
  trace("按下了Left键");
}
  这样当我们在测试的环境下按下左方向键后,output窗口就会显示出"按下了Left键"。下面说说怎样使MC响应按键更复杂的按键。   (2)MC响应单个按键: onClipEvent (keyDown) {
  if (Key.isDown(72)) {
    trace("按下了H键");
  }
}
  这样在测试的环境下按下H键,output窗口就会显示出"按下了H键",其中72H键的keyCode值(其他按键的keyCode值将在附录中给出),如果不知道某个键的keyCode值也没关系,Flash为我们提供了getCode函数,将上面AS中的72替换成Key.getCode("H")会得到同样的效果。

源代码下载
  (3)MC响应组合键: onClipEvent (keyDown) {
  if (Key.isDown(72) && Key.isDown(17)) {
    trace("您按下的组合键是Ctrl+H");
  }
}
  在测试的环境中按下Ctrl+H键,output窗口就会显示出"您按下的组合键是Ctrl+H"   (4)利用帧上的动作响应按键:   新建一个flash文件,利用上面讲过的:在第一帧写AS,第二帧创建内容帧的方法,使影片形成循环以便随时进行判断,然后在第一帧中写入下面的几组代码,分别进行试验;如果你使用的是MX,也可以不建立第二帧,而是用试验代码代替 _root.onEnterFrame=function(){...}中的"..."来达到同样的效果: //①
trace(Key.getCode());
//②
if (Key.isDown(72)) {
  trace("按下了H键");
}
//③
if (Key.isDown(72) && Key.isDown(17)) {
  trace("按下了Ctrl+H组合键");
}
//④
if (Key.isDown(17)) {
  if (Key.isDown(72)) {
    temp = "+H";
  }
  if (Key.isDown(71)) {
    temp = "+G";
  }
  trace("按下了Ctrl"+temp+"键");
}
  注:对于MC的(2)(3)两种情况,可以将keyDown事件改为enterFrame事件,其

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