12-2 setIntervalclearInterval

日期物件可以存取日期與時間的資料。setIntervalclearInterval函數常用於遊戲設計。setInterval函數可以每隔一段時間(週期)執行指定的函數,也可以用來更新舞台上的畫面;停止setInterval執行的週期迴圈則使用clearInterval函數,利用呼叫setInterval傳回的週期識別名稱,再傳遞給clearInterval來停止週期迴圈。所以執行setInterval的同時要記得取得其傳回的識別名稱,否則將無法終止週期迴圈。

一、setInterval函數

語法:interval_id=setInterval (functionName, interval )

功能:每隔interval毫秒(1/1000)執行指定的函數。

說明:

1. functionName:被執行的函數。

2. interval:執行函數的週期,以毫秒為單位。

3. 執行setInterval函數時,傳回一個整數存於週期數值識別名稱,讓clearInterval可以透過該識別名稱停止週期迴圈。

二、clearInterval函數

語法:clearInterval (interval_id)

功能:停止setInterval執行的週期迴圈。

說明:interval_id:先前呼叫setInterval傳回的週期識別名稱。

 

 


  利用setIntervalclearInterval函數製作載入影片進度。(請和第十章的影格迴圈方法比較)

 

執行【ch12/ loading_setInterval.swf】檔案

 

 

 

 

 

 

 

 

 

 

 

 

載入【ch12/ loading_setInterval.fla】檔案。

 

 

 

 

 

 

 

 

 

action】圖層:

影格1程式

01

02

03

04

05

06

07

08

09

10

11

12

13

14

load_id= setInterval(Loading, 100);

stop();

 

function Loading() {

        loaded = getBytesLoaded();

        total = getBytesTotal();

        percentage = Math.round((loaded / total)*100);

        loading_mc.percent_txt = percentage + "%";

        loading_mc.bar._xscale = percentage;

        if ( percentage == 100 ) {

            clearInterval(load_id);

            gotoAndPlay(2);

        }

}

解說:

01:指定setInterval100毫秒(1/10)執行Loading自訂函數,傳回一個整數存於週期數值識別名稱load_id

02:影片停止動作。(等待載入完成)

0410Loading自訂函數。

0509:和第十章的影格迴圈法相同。

1013:判斷如果載入百分比已經100,則用clearInterval停止週期迴圈,跳到第二影格秀出主要內容。

影格2程式

01

stop();

解說:

01:影片停止動作,秀出主要內容。