看板 Flash 關於我們 聯絡資訊
※ 引述《Jerrynet (我愛Hot_game板)》之銘言: : ※ 引述《oj113068 (橘子汁)》之銘言: : : 檔案在此~@ @ : : http://www.datafilehost.com/download.php?file=4f20b2c9 : : 我想要問的是,我想利用亂數的方式讓一個物件隨撥放他的影格 : : 畫面上的物件實體名稱做叫 a : : 內共有五格,目前每一格先用數字作測試~@ @ 分別是12345 : : 並在影片內的每一格加上stop~ : : 因此fla檔的第一格我是寫 : : var p = 0; : : onEnterFrame = function () { : : p = random(5); : : }; : : if (p == 1) { : : _a.play(1); : : } : : if (p == 2) { : : _a.play(2); : : } : : if (p == 3) { : : _a.play(3); : : } : : if (p == 4) { : : _a.play(4); : : } : : if (p == 5) { : : _a.play(5); : : } : : 但是撥放出來以後沒有反應 : : 想請問我的寫法哪裡有錯誤~@ @ : : 我以為是層級的問題,不過加上root也沒反映 : : 不好意思,我是胡亂自學的,如果有什麼錯的很爆笑的地方請見諒Orz : : 先感謝回答<(_ _)> : 首先: : if判斷式請寫在function裡面,這樣才能每次都判斷一次 : 其次 : play() : 是播放 : gotoAndPlay(影格編號) : 才是跳到某格播放(我建議你用gotoAndStop) : 再來 : 你場景上並沒有一個名為 _a 的物件 ,你要命名 : 最後,我覺得你這樣寫並不好,我改寫你的程式 : onEnterFrame = function () { : _root._a.gotoAndStop(Math.floor(Math.random()*5)+1); : } : 就這三行就ok了 : 說明一下: : 自從flash5之後, random不再建議使用,請改用Math.random : 但是此函數會傳回大於等於0到小於1之間的小數( 即 0<=Math.random()<1 ),所以我乘以五, : 變成0~5之間(不會有五) : 再用Math.floor()函數,這是無條件捨去,只剩下整數,最後加1 : 就會產生範圍在1~5之間的整數了 : 建議你去買一本ActionScript的入門書來看,不過你用flash8,是ActionScript2 : 現在FlashCS3 已經用ActionScript3了,兩者差很多 : 看你要不要升級用CS3,因為以後用AS3語法是主流~ 不好意思,遇到一個大問題 囧 就是和2667一樣 跳動的太快眼花撩亂了Orz 雖然看了2667的討論,但是我卻吸收不了他的內容Orz 因為他每格都在判斷變數,所以即使我改成gotoAndPlay再延長影格也沒用~> <" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.6.249
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