快速业务通道

Flash MX 2004 编程(AS2.0)教程(九)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-09

 2.2实例
  前面简要介绍了一下几种常用的鼠标事件,下面我们就通过一个完整的例子来综合运用一下这些事件。
  首先建立一个场景,向其中添加三个影片剪辑实例,名称命名为hand_mc、message_txt、eventTrapper_btn和dragTest_mc,hand_mc用来替换鼠标、message_txt是一个动态文本,显示反馈信息,eventTrapper_btn是按钮实例,用来捕捉各种鼠标事件,dragTest_mc则用来演示拖动事件的处理。
  2.2.1自定义鼠标
  我们经常需要在Flash程序中使用自定义的鼠标指针,下面在这个例子中,我们将把鼠标指针换成自定义的外形。进入主场景,选择第一帧,在脚本面板中输入以下的代码:   stop ();
  Mouse.hide();
  startDrag ("hand_mc", true);
  Message_txt.text = "开始鼠标事件试验 ";
  第一句代码是stop(),也就是让影片播放到这里停下来一边等待用户的操作,Mouse.hide()隐藏鼠标指针,紧接着startDrag则是开始对影片剪辑实例hand_mc的拖动操作,由于前面已经将鼠标指针隐藏,因此这个命令现在的作用相当于将鼠标指针替换为一个图标。注意看,startDrag后面有两个参数,第一个作用很明显,就是将影片剪辑实例hand_mc作为拖动对象,而后面的ture则是将影片剪辑实例的中心和鼠标指针的中心锁定起来,如果设置为false,那么影片剪辑的中心将会和鼠标在场景内首次单击的点的位置锁定起来。在这个例子中,我们使用startDrag命令的目的是模拟鼠标指针替换的效果,因此显然应当设置这个参数为true。
  2.2.2捕捉并处理事件
  现在选中影片剪辑实例eventTrapper_btn,进入脚本面板,在这里我们可以编写一系列的事件处理代码。前面我们介绍了多个和鼠标相关的事件,这里就将其一个个捕获,注意观察他们之间的异同。
  on (rollOver) {
  message_txt.text = "鼠标浮动事件";
  }
  on (rollOut) {
   message_txt.text = "鼠标移出事件";
  }
  on (press) {
   message_txt.text = "鼠标单击事件";
  }
  on (dragOut) {
   message_txt.text = "鼠标在当前对象上按下左键后拖出";
  }
  on (release) {
   message_txt.text = "鼠标释放事件";
  }

  以上几个是比较简单的事件,下面我们再来处理稍微复杂一些的事件。
  选择影片剪辑实例dragTest_mc,然后再代码面板中输入这样的代码
   on (dragOver) {
   this._alpha = this._alpha - 10;
  }
  当用户按下鼠标左键并在dragTest_mc上拖动时,这个事件内部的代码就会被执行。this变量前面我们已经打过交道了,它的作用就是引用当前的对象(也就是dragTest_mc),_alpha是它的一个属性,透明度,这里我们通过一个简单的运算逐次降低其透明度,最终的效果类似于图像被橡皮擦掉一样。
  再选择按钮eventTrapper_btn,为其添加这样的代码:
   on (releaseOutside) {
   eventTrapper_btn._x = _root._xmouse;
   eventTrapper_btn._y = _root._ymouse;
  }

  这段代码可以实现拖放效果,当用户在eventTrapper_btn上按下鼠标左键并拖动,当鼠标在eventTrapper_btn外面释放时,releaseOutside事件就会发生,在这个事件中我们将eventTrapper_btn的位置(通过_x和_y坐标来定义)设置为当前鼠标释放时鼠标所处的坐标位置,按钮就会移动了。
  上面是通过鼠标拖动的方式移动物体,下面再试试看用键盘来实现,选择evnetTrapper_btn,为其追加这样的代码。
  on (keypress" ") {
   eventTrapper_btn._x = eventTrapper_btn._x-6
  }
  on (keypress" ") {
   eventTrapper_btn._x = eventTrapp

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