作者Jerrynet (我愛Hot_game板)
看板Flash
標題Re: [問題] 隨機撥放Movie上的影格
時間Fri Feb 1 22:15:42 2008
※ 引述《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語法是主流~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.113.61
推 oj113068:囧a 原來我忘記命名~||| 02/01 22:20
→ Jerrynet:XD~ 02/01 22:21
→ oj113068:你笑我!!!囧... 02/01 22:21
→ oj113068:事實上呢,會出現五個if,是因為我只學到if Orz 02/01 22:22
→ oj113068:嗯,我的AS是看一些檔案+問會得同學~Orz 非常不喜歡用書 02/01 22:23
→ oj113068:學軟體←缺乏耐心>____<" 02/01 22:24
推 oj113068:而且我老是看不懂F1的說明,可能基礎太差了 02/01 22:27
→ Jerrynet:我沒有笑你啦~我以前也常發生這種事,這很正常阿XD 02/01 22:28
→ Jerrynet:F1的說明初學者可能要花比較多時間才能看懂,因為一堆 02/01 22:29
→ Jerrynet:專有名詞,很多書都會解釋,而且用範例引領還不錯~@@ 02/01 22:30
推 oj113068:Orz 好....其實我偶爾也會在書局翻找有沒有比較基礎的書 02/01 22:42
→ oj113068:但是一直沒有認真想 囧> 02/01 22:43
推 oj113068:總之,感謝兩位的幫忙<( _ _")> 02/01 22:52
推 oj113068:請問一下,要是我要控制的是MC裡面的MC呢?@ @ 02/01 23:01
→ Jerrynet:那就MC裡的MC再取名,例如b ,則_root.a.b就是了 02/01 23:11
推 oj113068:原來實體名稱不用加底線~> <" 02/01 23:12
→ oj113068:成功了耶~好開心~謝謝你~>/////</ 02/01 23:13
→ Jerrynet:不客氣XD 02/01 23:20
→ oj113068:( ′▽`)-o█ 要卡片嗎?(喂) 02/01 23:25
→ Jerrynet:囧rz 02/01 23:29