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

所属分类: 媒体动画 / Flash教程 阅读数: 42
收藏 0 赞 0 分享

  我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件中是位置是“内置类影片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事件函数时可以随时删去这个事件,以减少内存的占用。例如在上面的事件函数时,我们可以改


复制代码
代码如下:

   if (this._x>430) {
   this._x = 20;
   }为:
  if (this._x>430) {
  delete this.onEnterFrame
  }

那么,这个事件被删除,小球停止运动。

  二、画正玄图象

  1、新知识点:

  (1)my_mc.createEmptyMovieClip(instanceName, depth)

  创建作为现有影片剪辑(my_mc)子级的空影片剪辑;

  instanceName:创建的子级影片剪辑的名称;

  depth:创建的子级影片剪辑的名称.

  (2)my_mc.lineStyle(线条宽度,线条颜色,线条透明度);

  my_mc.moveTo(起点横坐标, 起点纵坐标);

  my_mc.lineTo(终点横坐标, 终点纵坐标);

  (3)正玄函数

   y=sin(x)

  其中y为-1到1之间。

  2、例3.2.2 源程序脚本:(都写在场景的第1帧)

  点击查看动画效果<


复制代码
代码如下:

  i = 0; //变量初始化;
   createEmptyMovieClip("mc", 5);//在主时间轴下创建影片mc,深度为1
   with (mc) { //下面几条都是对mc的操作
   lineStyle(2, 0x00ff00, 100);//画线条的宽度为2,色彩为绿色,透明度为100
   moveTo(100, 50); //画竖线的起点横坐标100,纵坐标50
   lineTo(100, 300); //画竖线的终点横坐标100,纵坐标300;
   moveTo(50, 200); //画横线的起点横坐标50,纵坐标200
   lineTo(480, 200); //画横线的终点横坐标480,纵坐标200
   moveTo(100, 200); //画正玄的起点
   lineStyle(1, 0xff0000, 100);//正玄线的宽度为1,色彩为红色,透明度为100
   }
   onEnterFrame = function () {//执行主时间轴下的事件处理函数
   x = 100+i; //横轴表示角度,这里i为角度变化。计算正玄函数的横坐标;100是坐标原点横坐标
   y = 200-100*Math.sin(i*Math.PI/180);//计算正玄的纵坐标;
   mc.lineTo(x, y); //正玄线的下一点的坐标
    i++;
   if (i>=360) { //正玄函数的一个周期360度
   delete onEnterFrame;//删去这个事件处理函数
  }
};

  3 作业:

  A :把上面的画正玄函数改动为:

  (1)坐标原点为(100,100);

  (2)函数高度为50;

  (3)每隔5度画一点。

  B: (选作)把上面的画正玄函数改动为:正玄图象起点的横坐标、震幅、跨度由输入文本控制如下图的形式

  点击查看动画效果<

  查看全套"Flash AS 高级教程"

更多精彩内容其他人还在看

Flash cs3绘制人物高级行走动画教程

本教程向大家介绍Flash cs3绘制人物高级行走动画效果,教程难度不是很大,绘制方法及过程介绍的也非常详细,教程很实用,转发过来,希望大家喜欢
收藏 0 赞 0 分享

Flash CS4来制作漂亮的气泡动画教程

本教程向脚本之家的朋友介绍用Flash CS4来制作漂亮的气泡动画,制作出来气泡真的很好看,制作效果是采用代码形式实现,觉得很不错,转发过来,感兴趣的朋友可以一起来学习
收藏 0 赞 0 分享

flash基础教程:帧、关键帧、空白帧概念及区别介绍

动画的产生是帧来实现的,那什么是帧?帧、关键帧和空白帧之间又有什么区别?本文就为大家介绍一下三者之间的关系
收藏 0 赞 0 分享

Flash教程:动画背景的绘制方法之透视篇(给新手)

Flash动画在网络上的广泛传播,已经成为上网一族喜闻乐见的一种艺术形式。动画背景的绘制方法有很多,也有很多表现方法。这里将结合透视学的基础知识向大家简单的介绍一下动画背景的绘制。
收藏 0 赞 0 分享

Flash AS入门教程:Flash AS3.0制作有年份有日期的时钟

本教程是向大家介绍利用Flash AS3.0制作有年份有日期的时钟,虽然制作时钟老套了点,但它确可以较全面地应用到时间日期和间隔等知识,仍不失为较好的入门练习,转发给大家,希望对大家有所帮助
收藏 0 赞 0 分享

Flash相册制作大师具体该如何使用 Flash相册制作大师使用教程

在本文中我们将会看到的是Flash相册制作大师的具体使用的方法
收藏 0 赞 0 分享

flash基础教程:混色器面板图文介绍

混色器面板是Flash中用于色彩处理的一个重要面板,熟练地使用该面板,可以帮助用户快速地完成色彩的填充,编辑出色彩丰富的图形。本教程为大家详细介绍一下混色器面板,希望对大家有所帮助
收藏 0 赞 0 分享

25个绝对让你应接不暇的Flash网站创意

在Web设计过程中,运用成熟的Flash技术可以把你任意想到的idea表现到产品页面中。这里为你整理发现了25个绝对让你应接不暇的 Flash网站创意,更好地体现网站的互动应用,同时可以让你大饱眼福,一起来欣赏吧
收藏 0 赞 0 分享

教你用Flash制作非常酷的二进制时钟动画

今天在这个教程中我们将学习用Flash做一个不同寻常的,但非常酷的时钟:一个二进制时钟,中间用到了代码,但介绍地很详细,相信很值得大家学习
收藏 0 赞 0 分享

Flash动画特效制作技巧:制作超酷的文字炸开动画效果

本教程向大家介绍Flash动画特效制作技巧,本实例是制作文字炸开的动画效果,制作效果非常酷,制作过程也比较简单,喜欢的朋友可以过来学习一下这种制作方法
收藏 0 赞 0 分享
查看更多