Re: [問題] 隨機撥放Movie上的影格
※ 引述《oj113068 (橘子汁)》之銘言:
: : onEnterFrame = function () {
: : _root._a.gotoAndStop(Math.floor(Math.random()*5)+1);
: : }
: 不好意思,遇到一個大問題 囧
: 就是和2667一樣
: 跳動的太快眼花撩亂了Orz
: 雖然看了2667的討論,但是我卻吸收不了他的內容Orz
: 因為他每格都在判斷變數,所以即使我改成gotoAndPlay再延長影格也沒用~> <"
: 推 Jerrynet:如果不用Timer,2671篇是蠻好的解決方法 02/03 22:30
: → oj113068:所以我是直接加上三行var做調整就可以了嗎? 02/04 11:50
: 推 Jerrynet:不只啊,他不是還有寫判斷式~ 02/04 12:49
: → oj113068:唔,現在遇到的另外一個問題是,2671篇是決定xy軸 02/04 16:07
: → oj113068:的範圍,我要怎麼改成決定時間的長短? 02/04 16:08
: → oj113068:簡單的說就是,我有點不知道要怎麼修改2671...(嘗試中Orz 02/04 16:09
本來想說這討論串有參考價值(我想到的是擲骰子的運用)
所以回去2671爬文
結果發現 2671篇作者是我耶
應該灑花嗎? XD
原本寫的東西有包含引用的內容
所以實際應該是下面寫的這樣
var fps:Number=12;//這個數字自己調整成該檔案的畫面更新速率
var stop_sec:Number=3;//看你自己要幾秒
var i:Number=0;//用來累計的
onClipEvent (enterFrame) {
i++;
if(i>=fps*stop_sec){
this._x = math.random()*800;
this._y = math.random()*600;
i=0;
}
}
先看黃色的部分
這裡的if就是判斷經過的時間有沒有到達我們設定的時間
而這個我們設定的時間就是綠色的部分可以做設定(改那個3就好了)
而因為你想要在到達設定的時間執行「取變數以及gotoAndStop」這個東西
因此只要將內部的this._x和this._y改成你要執行的事情就好了
i=0;還是要留下喔 因為他是做累計的 如果不歸零
就沒辦法一直重複這件事情了
另外該篇文章原本的寫法是將onEnterFrame這東西寫在物件裡面
你的寫法是寫在影格上 所以onClipEvent (enterFrame) {這行也要改
改完結果應該如下
var fps:Number=12;//這個數字自己調整成該檔案的畫面更新速率
var stop_sec:Number=3;//看你自己要幾秒
var i:Number=0;//用來累計的
onEnterFrame = function () {
i++;
if(i>=fps*stop_sec){
_root._a.gotoAndStop(Math.floor(Math.random()*5)+1);
i=0;
}
}
綠色可以調整時間 黃色是時間到了你所要做的事情
紫色是改成將程式碼寫在影格上的寫法
以上
我個人覺得2672的方法 運用內建時間函數來做 也是很好的方式
只是 在效能上不曉得有沒有什麼差異?
因為getTimer()所取得的值應該會持續變大
此時做減法 會不會影響到效能呢?
再提個問題
上面這樣的作法可以讓影格在固定一段時間跳到隨機影格去
我聯想到的是擲骰子的應用
可是這樣子固定時間好像不夠動感 感覺就只是突然停下來
可不可以設計成先很快的跳動 然後慢慢的變慢下來 最後停在擲出來的點數呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.150.238
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章