好学IT学院:IT信息技术分享交流平台
标签:Action  来源:IT.com.cn  作者:陈孝强  发布时间:2009-05-11  ★★★加入收藏〗〖手机版
Flash ActionScript图文教程:处理事件篇
摘要:事件,是推动Flash程序运行的灵魂,可以说,没有事件就没有Flash程序,真是因为有了丰富的事件,Flash程序的交互性才能够得以实现。开发Flash程序时,我们需要花很大一部分精力去估计程序应该处理哪些事件以及如何处理这些事件。比方说对一个按钮,我们是不是…

2.3.2.2图片的自动切换

1、回到主场景中,将上一步制作好的影片剪辑拖放到场景中并将其命名为picture_mc,调整其长度为45帧。

2、添加一个动态文本,命名为message_txt,我们将用它来显示倒计时,倒计时完成时,picture_mc中的图片自动切换。另外还要添加一个名称为caption_txt的动态文本,它将显示图片的标题,由影片剪辑picture_mc自身的代码来控制。

3、新建一个层,命名为倒计时,调整其长度为45帧左右,在0、15、30帧处,分别添加帧事件,代码内容分别是:

message_txt.text="图片将在3秒后切换";
  message_txt.text="图片将在2秒后切换";
  message_txt.text="图片将在1秒后切换";

在第45帧上添加这样的代码:
 
  picture_mc.nextFrame();
  gotoAndPlay(1);

前面三个帧事件的作用是显示倒计时,最后45帧上的代码有两行组成,第一行让影片剪辑实例picuture_mc向后跳一帧。这样就形成了倒计时完成切换图片的效果。接下来的gotoAndPlay(1)的作用是退回到影片的第一帧,开始新一轮的倒计时。

2.3.2.3按钮控制

1、添加一个新层,命名为“按钮”,调整其长度为45帧。
  2、制作三个按钮,将其拖放到图层“按钮”中,将其分别命名为play_btn、stop_btn和rewind_btn。
  3、为以上三个按钮分别添加上这样的代码。


  
  on (release) {
   play ();
  }
  on (release) {
   stop ();
  }
  on (release) {
   gotoAndPlay (1);
   pictures_mc.gotoAndStop (1);
  }

这三段代码中,前两段非常直接,只要对影片进行播放或者停止操作就万事大吉了。最后一段是进行复位的,有两行,因为影片本身和影片剪辑实例都需要复位,所以略为显得罗嗦一点。

2.4影片剪辑事件

相对于前面所介绍的鼠标事件、键盘事件以及帧事件而言,影片剪辑事件则显得稍为有点难懂。当我们将一个影片剪辑放到场景中时,他就成了一个“事件发射器”,不断地报告自己的运行状态,如果我们捕获这样的事件,就可以做出相应的反应和处理。影片剪辑有多种,下面分门别类地加以介绍。

2.4.1onClipEvent(Load)和onClipEvent(unload)

这个事件在影片剪辑加载的时候发生,那什么是影片剪辑的加载呢?比方说,你在场景中添加了一个影片剪辑clip_mc,并让他在第10帧的时候出现影片中,那么第10帧的时候它就会触发这个事件。要想处理这个事件可以选择影片剪辑clip_mc,然后在下面的脚本面板中输入这样的代码(通常用来对影片剪辑进行初始化):

onClipEvent(Load)
  {
  }

onClipEvent(unload)的作用和onClipEvent(load)的作用恰好相反,当影片剪辑消失的时候,这个事件就会发生。

2.4.2OnClipEvent(enterFrame)
  enterFrame事件会随着影片的播放而不断发生,影片每前进一帧,影片剪辑就会触发一次enterFrame事件。假设影片的播放速率为每秒20帧,那么这个事件就会以每秒20次的速率不断产生。你一定会问,这样的事件有什么作用?其实在影片剪辑事件中,enterFrame应该说是最常用的,因为他可以用来制作相当复杂的动画。比方说,我们要制作一个炸弹从空中不断翻滚落下的动画可以按照这样的步骤来执行:首先建立一个影片剪辑作为炸弹,将其拖放到场景中建立影片剪辑实例,让这个实例捕捉enterFrame事件,并为其设计这样的代码:

onClipEvent(enterFrame)
  {
  this._Roation+=10;
  this._y+=10;
  }

这段代码的意思就是,每隔一帧将影片剪辑(this)旋转10度,同时沿纵向移动10个单位。这里用到了一个“+=”运算符,可能有点容易让人感到困惑,其实这是一种常用的运算符简写方式,意思是“自己给自己加上某个值”,例如This._Rotation+=10和This._Rotation=This._Rotation+10是等效的。

Flash ActionScript图文教程:入门篇
  ActionScript是一种编程语言,Flash专用。ActionScript的语法类似Javascript或者Java,如果你…
  • 好学触屏公众号虎力全开、杨帆起航!
  • 好学考试H5触屏版开放内测