Flash AS 入门教程 事件处理函数及画线语句

2019-10-08 14:30:42王旭

  我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件中是位置是“内置类影片MovieClip事件”。

  源文件下载

  一、 flash 2004提供了18个事件,我们在这里主要介绍Button.onRelease和MovieClip.onEnterFrame这两个件的用法。

  1、Button.onRelease的用法:


复制代码
   my_btn.onRelease = function() {
  // 此处是您的语句
  }

   这里my_btn是按扭的实例名。当按下并松开按钮时调用。注意,这里的事件都是以函数形式表示的,因此,我们可以叫做事件处理函数

  2、MovieClip.onEnterFrame的用法:


复制代码
   my_mc.onEnterFrame = function() {
   // 此处是您的语句
   }

  这里my_mc是影片剪辑的实例名。这个事件处理函数以 SWF 文件的帧频持续调用,这个函数的作用和在mc上写的事件onClipEvent (enterFrame)类同,但是,使用起来更方便更有效。

  从用法中可以知道,必须定义一个在调用事件处理时执行的函数。我们看一个实际例子。

  例 3.2.1

  前一节的例2中我们在“控制”按钮、“小松鼠”影片剪辑或者“小球”影片剪辑上按下鼠标时,调用自定义函数,使小松鼠和小球分别按照相反的方向运动。现在我们把这三个事件改为写在帧上的事件函数:


复制代码
   function yd() {
   gotoAndPlay(1);
   qiu_mc.gotoAndPlay(31);
   }
   shu_mc.onPress = function() {
   yd();
   };
   qiu_mc.onPress = function() {
   yd();
   };
   my_btn.onPress = function() {
   yd();
   };

  这里另加了一个lqiu_mc,在帧上调用MovieClip.onEnterFrame,使这个小球在场景来会运动。


复制代码
  lqiu_mc.onEnterFrame = function() {//调用MovieClip.onEnterFrame事件函数,
  this._x += 10; //lqiu_mc的横坐标每次增加10;
  web=this._x //在文本web中显示lqiu_mc的横坐标;
  if (this._x>430) { //当lqiu_mc的横坐标大于430时;
  this._x = 20; //让lqiu_mc的横坐标为20;
  }
};

  点击查看动画效果<

  这里我们可以看到,写在帧上的MovieClip.onEnterFrame和写在mc上的onClipEvent (enterFrame)可以起到完全相同的作用。并且,我们还可以在调用MovieClip.onEnterFrame事件函数时可以随时删去这个事件,以减少内存的占用。例如在上面的事件函数时,我们可以改