Re: [問題] 隨機撥放Movie上的影格

看板Flash作者 (喵)時間18年前 (2008/02/04 23:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《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
文章代碼(AID): #17fodAAx (Flash)
文章代碼(AID): #17fodAAx (Flash)