flash as 初步学会教程 setinterval函数应用举例

更新时间:15-10-24 09:00 热度:411
 

  setinterval动作的效用是在播放动画的时,每隔一定时间就调配使用函数,办法或对象。15102409001768783442003 flash as 初步学会教程 setinterval函数应用举例

  本节知识要领:

  1、setinterval(function,interval,arg);

  第1个参变量function:也就是要调配使用的函数或办法;可以是佚名的函数、起名称函数、对象办法或电影剪接

  第二个参变量interval:调配使用的时间间隔,毫秒为单位。

  第三个参变量arg:传交给将被调配使用的函数或办法的参变量

  2、clearinterval()

  扫除净尽对 setinterval() 的调配使用。

  应用举例

  例01 用setinterval做降雨效果

  我们以往做降雨效果时,普通是经过帧的循环来复制雨滴的,帧的循环实际上也就是间隔一定的时间。那末,我们当然也足以用setinterval来每隔一定时间就调配使用函数,而这个函数的功能就是复制一滴雨滴,况且设置其坐标。

  敞开3.6.1.fla文件,在第1帧上的代码:

复制代码

代码如下所述:

 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间隔相同时间播放;

  本例题出处于网友的提出问题,看下图:

  1510240900184638555714 flash as 初步学会教程 setinterval函数应用举例

  问题思考的线索:

  对于顺着次序播放:设置一个播放一个mc的函数,再用setinterval依据输入文本获得的间隔时间来调配使用这个函数;同时,利用数组变量变更这个函数里的mc。

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

  敞开3.6.2.fla文件作别检查到处脚本代码:

  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();     //第1个mc播放(为了第1个mc的运行不间隔时间)
     var sj = setinterval(du, time*1000);
              //设置setinterval函数,每隔time秒调配使用一次函数du
    }
  }

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

复制代码

代码如下所述:

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

  作业

  把例2的要求改为:无论顺着次序播放仍然随机播放,使一个mc播放终了,后一个mc着手播放,这时的时间间隔等于输入文本的时间,如下所述图。15102409001768783442003 flash as 初步学会教程 setinterval函数应用举例

  1510240900184638555714 flash as 初步学会教程 setinterval函数应用举例

  15102409001817168841825 flash as 初步学会教程 setinterval函数应用举例