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

看板Flash作者 (橘子汁)時間18年前 (2008/02/03 21:57), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串4/6 (看更多)
※ 引述《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

02/03 22:30, , 1F
如果不用Timer,2671篇是蠻好的解決方法
02/03 22:30, 1F

02/04 11:50, , 2F
所以我是直接加上三行var做調整就可以了嗎?
02/04 11:50, 2F

02/04 12:49, , 3F
不只啊,他不是還有寫判斷式~
02/04 12:49, 3F

02/04 16:07, , 4F
唔,現在遇到的另外一個問題是,2671篇是決定xy軸
02/04 16:07, 4F

02/04 16:08, , 5F
的範圍,我要怎麼改成決定時間的長短?
02/04 16:08, 5F

02/04 16:09, , 6F
簡單的說就是,我有點不知道要怎麼修改2671...(嘗試中Orz
02/04 16:09, 6F
文章代碼(AID): #17fSXd2G (Flash)
文章代碼(AID): #17fSXd2G (Flash)