Flash AS 入门教程 setInterval函数应用举例

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

  setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。源文件下载

  本节知识要点:

  1、setInterval(function,interval,arg);

  第一个参数function:也就是要调用的函数或方法;可以是匿名的函数、命名函数、对象方法或电影剪辑

  第二个参数interval:调用的时间间隔,毫秒为单位。

  第三个参数arg:传递给将被调用的函数或方法的参数

  2、clearInterval()

  清除对 setInterval() 的调用。

  应用举例

  例01 用setInterval做下雨效果

  我们过去做下雨效果时,一般是通过帧的循环来复制雨滴的,帧的循环其实也就是间隔一定的时间。那么,我们当然也完全可以用setInterval来每隔一定时间就调用函数,而这个函数的功能就是复制一滴雨滴,并且设置其坐标。

  打开3.6.1.fla文件,在第一帧上的代码:


复制代码
代码如下:

 i = 0;
 rain._visible = 0;
 function xiayu() {
   duplicateMovieClip(rain, "r"+i, i);
   _root["r"+i]._x = Math.round(Math.random()*550);
   _root["r"+i]._y = Math.round(Math.random()*400);
   i++;
   if (i == 100) {
    i = 0;
   }
 }
  var sj;//设置变量
  sj = setInterval(xiayu,10); //每隔10毫秒调函数xiayu一次。

  运行程序,检测效果。

  现在,我们试试参数的传递。我们把rain做为参数传递,那么上面的程序可以改为:


复制代码
代码如下:

  .....
  function xiayu(md) {
   duplicateMovieClip(md, "r"+i, i);
   ........
  }
  sj = setInterval(xiayu,10,rain);

  运行程序,检查一下,效果和上面的程序是不是一样?

  例02 使几个影片剪辑mc间隔相同时间播放;

  本例题来源于网友的提问,看下图:

  点击查看动画效果<

  问题思路:

  对于顺序播放:设置一个播放一个mc的函数,再用setInterval根据输入文本得到的间隔时间来调用这个函数;同时,利用数组变量改变这个函数里的mc。

  对于随机播放: 可以用上一节的乱数排列知识来处理。

  打开3.6.2.fla文件分别查看各处脚本:

  1、主时间轴第1帧上的脚本:


复制代码
代码如下:

  mc = [aa, bb, cc, dd];//把4个影片简辑的实例名作为数组mc的元素
  time = ""; //设置输入文本的初始值为""
  i = 0; //设置变量i的初始值为0
 function du() {//设置自定义函数,函数名为du
   i++;
   mc[i].play();//数组中第i个元素开始播放
   if (i == 3) {
   clearInterval(sj);//最后一个mc播放后,清除sj表示的setInterval函数
   }
 }
 function duing() {//设置自定义函数,函数名为duing;
   k = Math.floor(Math.random()*mc.length);//随机选择数组mc中的一个元素的序号
   mc[k].play();//数组mc中第k个元素开始播放
   mc.splice(k, 1);//删除数组mc中的第k个元素(影片剪辑)
   if (mc.length == 0) {
    clearInterval(sjing);//最后一个mc播放后,清除sjing表示的setInterval函数
   }
 }

  2、顺序播放按扭上的脚本:


复制代码
代码如下:

  on (release) {
    mc = [aa, bb, cc, dd];//把4个影片简辑的实例名作为数组mc的元素(为了能够重复使用)
    i = 0;        //设置变量i的初始值为0(为了能够重复使用)
    if (time != "") {  //如果输入文本不为空(输入了数字)
     aa.play();     //第一个mc播放(为了第一个mc的运行不间隔时间)
     var sj = setInterval(du, time*1000);
              //设置setInterval函数,每隔time秒调用一次函数du
    }
  }

  3、随机播放按扭上的脚本:


复制代码
代码如下:

  on (release) {
    mc = [aa, bb, cc, dd];
    i=0;
    if (time != "") {
      duing();  //调duing函数(为了第一个mc的运行不间隔时间)
     var sjing = setInterval(duing, time*1000);
           //设置setInterval函数,每隔time秒调用一次函数duing
    }
  }

  作业

  把例2的要求改为:不管顺序播放还是随机播放,使一个mc播放结束,后一个mc开始播放,这时的时间间隔等于输入文本的时间,如下图。源文件下载

  点击查看动画效果<

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

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

FLASH CLASS的基本编写规范

继续回来写教程。本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!为啥?凑篇幅呗~啊哈哈~而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS,所以,还是用一节把CLASS的写法说一下。可能我对CLASS
收藏 0 赞 0 分享

flash教程:使用拆分数字和文字的函数

flash的小函数:拆分数字和文字的函数. 以下为引用的内容: /* * 拆分数字和文字 */ public function splitNS(s:String):Object{ var tNum:String=""
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例六

相关文章: 通过实例学习Flash AS3.0——案例五 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

用Flash AS制作逼真的下雨动画效果

Flash教程:用Flash AS制作逼真的下雨动画效果 先看下效果:(附.swf文件) 制作过程 一、新建一图层,大小随意; 二、新建元件(影片剪辑): 1、制作雨滴并下落。使用直线工具(颜色设为灰色,1像素)画一短直线,使用选择工具将直
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例五

相关文章: 通过实例学习Flash AS3.0——案例四 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

Flash CS3制作Fla形式的组件

  本文为大家介绍如何制作Flash CS3中的[*.fla]形式的的组件(Component)。这种组件和SWC组件不同,它和CS3自带的组件一样能够双击进入组件里面编辑,是Flash CS3新增加的一种组件形态。下面我们制作一个MyButton组件为例子。   制作步骤:
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例四

相关文章:通过实例学习AS3.0——案例三 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
收藏 0 赞 0 分享

通过实例学习flash AS3.0——案例二

相关文章:通过实例学习AS3.0 --案例一 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢
收藏 0 赞 0 分享

通过实例学习AS3.0——案例三

相关文章:通过实例学习flash AS3.0——案例二 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知
收藏 0 赞 0 分享

通过实例学习AS3.0

首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。 下面进入正题:
收藏 0 赞 0 分享
查看更多