FLASH:我想要在動畫開始後五秒改變frameRate

我想要在動畫開始後5秒改變frameRate,

請問該怎麼寫呢?

(用action script3 的stage.frameRate來寫)

Update:

解決了,感謝~ 我會把最佳解答給你

另外想問一下,setInterval的int是指什麼? 為什麼要先指定一個變數給他?

另外這程式可以用onEnterframe的方法來寫嗎?

1 Answer

Rating
  • Lv 4
    1 decade ago
    Favorite Answer

    var flag:Number;

    flag=setInterval(changeFrameRate,5000);//每5秒(5000毫秒)執行changeFrameRate這支function

    function changeFrameRate() {

    stage.frameRate=60;//指定frameRate為60

    clearInterval(flag);//不再執行

    }

    2009-08-13 22:03:19 補充:

    1.int是指什麼?

    我不懂你的意思,那來的int??

    2.指定一個變數,你是指我指定flag變數給它吧,這是為了

    clearInterval(flag);//不再執行

    如果把上面這一行註解起來的話,每5秒鐘就會執行一次changeFrameRate這支function。

    3.你要用onEnterframe也可以,在跑第一個影格的時候就抓"開始時間",然後下onEnterframe,判斷"現在時間"-"開始時間"是否大於5秒,若大於,就改變frameRate

    2009-08-13 22:14:32 補充:

    程式碼:

    var sDate:Date=new Date();

    var sTime:Number=sDate.getTime();

    var flag:Boolean=true;

    stage.addEventListener(Event.ENTER_FRAME,changeFrameRate);

    function changeFrameRate(e:Event){

    var nDate:Date=new Date();

    var nTime:Number=nDate.getTime();

    if(nTime-sTime>5000 && flag){

    flag=false;

    }

    }

    2009-08-13 22:22:25 補充:

    sorry,程式碼少了一行,在flag=false;的上面插入 " stage.frameRate=60; "

    另外還有一個單純的作法,自行計算第5秒的影格,在那裡下改變影格速率的指令。以fps是12的檔案為例,就是下在第12*5=60個影格。

    Source(s): 我的BLOG: http://ercrta.blogspot.com/
Still have questions? Get your answers by asking now.