国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 辦公 > Flash > 正文

Flash AS 入門教程 setInterval函數(shù)應(yīng)用舉例

2020-07-17 13:13:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  setInterval動(dòng)作的作用是在播放動(dòng)畫(huà)的時(shí),每隔一定時(shí)間就調(diào)用函數(shù),方法或?qū)ο蟆?img alt="" src="/d/file/p/2020/07-17/2a75cd11eb7bfa4f2d9a140929cb803f.gif" />源文件下載

  本節(jié)知識(shí)要點(diǎn):

  1、setInterval(function,interval,arg);

  第一個(gè)參數(shù)function:也就是要調(diào)用的函數(shù)或方法;可以是匿名的函數(shù)、命名函數(shù)、對(duì)象方法或電影剪輯

  第二個(gè)參數(shù)interval:調(diào)用的時(shí)間間隔,毫秒為單位。

  第三個(gè)參數(shù)arg:傳遞給將被調(diào)用的函數(shù)或方法的參數(shù)

  2、clearInterval()

  清除對(duì) setInterval() 的調(diào)用。

  應(yīng)用舉例

  例01 用setInterval做下雨效果

  我們過(guò)去做下雨效果時(shí),一般是通過(guò)幀的循環(huán)來(lái)復(fù)制雨滴的,幀的循環(huán)其實(shí)也就是間隔一定的時(shí)間。那么,我們當(dāng)然也完全可以用setInterval來(lái)每隔一定時(shí)間就調(diào)用函數(shù),而這個(gè)函數(shù)的功能就是復(fù)制一滴雨滴,并且設(shè)置其坐標(biāo)。

  打開(kāi)3.6.1.fla文件,在第一幀上的代碼:


復(fù)制代碼
代碼如下:

 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;//設(shè)置變量
  sj = setInterval(xiayu,10); //每隔10毫秒調(diào)函數(shù)xiayu一次。

  運(yùn)行程序,檢測(cè)效果。

  現(xiàn)在,我們?cè)囋噮?shù)的傳遞。我們把rain做為參數(shù)傳遞,那么上面的程序可以改為:


復(fù)制代碼
代碼如下:

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

  運(yùn)行程序,檢查一下,效果和上面的程序是不是一樣?

  例02 使幾個(gè)影片剪輯mc間隔相同時(shí)間播放;

  本例題來(lái)源于網(wǎng)友的提問(wèn),看下圖:

  點(diǎn)擊查看動(dòng)畫(huà)效果<

  問(wèn)題思路:

  對(duì)于順序播放:設(shè)置一個(gè)播放一個(gè)mc的函數(shù),再用setInterval根據(jù)輸入文本得到的間隔時(shí)間來(lái)調(diào)用這個(gè)函數(shù);同時(shí),利用數(shù)組變量改變這個(gè)函數(shù)里的mc。

  對(duì)于隨機(jī)播放: 可以用上一節(jié)的亂數(shù)排列知識(shí)來(lái)處理。

  打開(kāi)3.6.2.fla文件分別查看各處腳本:

  1、主時(shí)間軸第1幀上的腳本:


復(fù)制代碼
代碼如下:

  mc = [aa, bb, cc, dd];//把4個(gè)影片簡(jiǎn)輯的實(shí)例名作為數(shù)組mc的元素
  time = ""; //設(shè)置輸入文本的初始值為""
  i = 0; //設(shè)置變量i的初始值為0
 function du() {//設(shè)置自定義函數(shù),函數(shù)名為du
   i++;
   mc[i].play();//數(shù)組中第i個(gè)元素開(kāi)始播放
   if (i == 3) {
   clearInterval(sj);//最后一個(gè)mc播放后,清除sj表示的setInterval函數(shù)
   }
 }
 function duing() {//設(shè)置自定義函數(shù),函數(shù)名為duing;
   k = Math.floor(Math.random()*mc.length);//隨機(jī)選擇數(shù)組mc中的一個(gè)元素的序號(hào)
   mc[k].play();//數(shù)組mc中第k個(gè)元素開(kāi)始播放
   mc.splice(k, 1);//刪除數(shù)組mc中的第k個(gè)元素(影片剪輯)
   if (mc.length == 0) {
    clearInterval(sjing);//最后一個(gè)mc播放后,清除sjing表示的setInterval函數(shù)
   }
 }

  2、順序播放按扭上的腳本:


復(fù)制代碼
代碼如下:

  on (release) {
    mc = [aa, bb, cc, dd];//把4個(gè)影片簡(jiǎn)輯的實(shí)例名作為數(shù)組mc的元素(為了能夠重復(fù)使用)
    i = 0;        //設(shè)置變量i的初始值為0(為了能夠重復(fù)使用)
    if (time != "") {  //如果輸入文本不為空(輸入了數(shù)字)
     aa.play();     //第一個(gè)mc播放(為了第一個(gè)mc的運(yùn)行不間隔時(shí)間)
     var sj = setInterval(du, time*1000);
              //設(shè)置setInterval函數(shù),每隔time秒調(diào)用一次函數(shù)du
    }
  }

  3、隨機(jī)播放按扭上的腳本:


復(fù)制代碼
代碼如下:

  on (release) {
    mc = [aa, bb, cc, dd];
    i=0;
    if (time != "") {
      duing();  //調(diào)duing函數(shù)(為了第一個(gè)mc的運(yùn)行不間隔時(shí)間)
     var sjing = setInterval(duing, time*1000);
           //設(shè)置setInterval函數(shù),每隔time秒調(diào)用一次函數(shù)duing
    }
  }

  作業(yè)

  把例2的要求改為:不管順序播放還是隨機(jī)播放,使一個(gè)mc播放結(jié)束,后一個(gè)mc開(kāi)始播放,這時(shí)的時(shí)間間隔等于輸入文本的時(shí)間,如下圖。源文件下載

  點(diǎn)擊查看動(dòng)畫(huà)效果<

  查看全套"Flash AS 高級(jí)教程"

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吐鲁番市| 张北县| 金坛市| 衡东县| 安福县| 抚顺县| 临澧县| 布拖县| 尼勒克县| 马尔康县| 峨山| 延庆县| 宾川县| 小金县| 德保县| 东莞市| 南昌县| 砀山县| 涿州市| 安顺市| 长兴县| 射洪县| 来安县| 洛浦县| 临邑县| 贵州省| 阳东县| 高台县| 彩票| 乌兰浩特市| 诸城市| 泰宁县| 陵川县| 高阳县| 大渡口区| 瑞金市| 自贡市| 呼伦贝尔市| 锡林浩特市| 荔浦县| 乃东县|