[問題] 影片片段跑一次就不動了

看板Flash作者 (IUTD)時間13年前 (2011/06/30 01:16), 編輯推噓6(6039)
留言45則, 3人參與, 最新討論串1/2 (看更多)
小弟初學flash 遇到了瓶頸 來請問一下 onClipEvent (load) { b=150;} onClipEvent (enterFrame) { if(b>0){ this.gotoAndStop("boss_move"); b--;} else { this.gotoAndStop("boss_attack"); b=b+150;} trace (b);} 上面是原始碼 遇到的問題就是 第一次跑的時候boss_move跟boss_attack都有播放 可是跑過一遍後就不會在播放了 看著b從150跑到0又變成150 確定if有動作但影片片段卻沒變 想不出原因 可以幫忙解惑一下嗎 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.11.230

06/30 01:17, , 1F
附個原始檔吧
06/30 01:17, 1F

06/30 01:31, , 2F
就.是不是操控影片片段的指令 在迴圈裡只能動一次呢?
06/30 01:31, 2F

06/30 01:32, , 3F
剛剛才發現我沒存檔= = 慘了..
06/30 01:32, 3F

06/30 01:48, , 4F
06/30 01:48, 4F

06/30 01:49, , 5F
請愛用mediafire,badongo已經不是很方便的免空
06/30 01:49, 5F

06/30 01:51, , 6F
喔喔 好的 那我在去試試
06/30 01:51, 6F

06/30 01:56, , 7F

06/30 02:02, , 8F
我想吐槽一下,你的程式碼寫的是move跟attack
06/30 02:02, 8F

06/30 02:03, , 9F
但是標籤寫的是wait attack跟dead
06/30 02:03, 9F

06/30 02:14, , 10F
樓上說的已經更改了 可是還是只動一次
06/30 02:14, 10F

06/30 02:23, , 11F
印象中已經載入的mc宣告stop之後
06/30 02:23, 11F

06/30 02:23, , 12F
在沒有reload的前提之下,就算重新顯示也會維持原狀態
06/30 02:23, 12F

06/30 02:24, , 13F
換句話說你的wait跟attack子mc都有stop過
06/30 02:24, 13F

06/30 02:25, , 14F
如果重新宣告跑到wait跟attack
06/30 02:25, 14F

06/30 02:25, , 15F
子mc也要呼叫一次gotoAndPlay(1)的樣子
06/30 02:25, 15F

06/30 02:25, , 16F
(不確定是不是這個原因,記得以前遇過類似問題
06/30 02:25, 16F

06/30 02:26, , 17F
你可以把三個影格的mc都取作main
06/30 02:26, 17F

06/30 02:27, , 18F
this.main.gotoAndPlay(1)
06/30 02:27, 18F

06/30 02:30, , 19F
但是要注意的是你的wait呼叫了150次
06/30 02:30, 19F

06/30 02:30, , 20F
會因此卡在第一格,可能弄個boolean會比較好
06/30 02:30, 20F

06/30 02:30, , 21F
事實上設定b==150的時候才移動影格會嚴謹得多
06/30 02:30, 21F

06/30 02:37, , 22F
把三個都設定一樣的名字後 連動也不會動了
06/30 02:37, 22F


06/30 02:40, , 24F
CS4的版本,我有修改實體名稱跟enterframe那段
06/30 02:40, 24F

06/30 02:40, , 25F
不知道是不是你要的效果
06/30 02:40, 25F

06/30 02:40, , 26F
順帶一提,你的attack只有維持瞬間的時間
06/30 02:40, 26F

06/30 02:40, , 27F
所以attack的動畫有跟沒有一樣
06/30 02:40, 27F

06/30 02:43, , 28F
想做act可以問問hirabbitt大,他最近也在寫
06/30 02:43, 28F

06/30 02:43, , 29F
就判定跟移動的流暢度也許你可以請教一下
06/30 02:43, 29F

06/30 02:49, , 30F
感謝回答 我看懂了 :)
06/30 02:49, 30F

06/30 02:51, , 31F
至於流暢度跟判定 我真的需要請教了 :)
06/30 02:51, 31F

06/30 03:03, , 32F
對了 剛發現一個問題就是
06/30 03:03, 32F

06/30 03:05, , 33F
如果我只有用attack 把wait拿掉來看
06/30 03:05, 33F

06/30 03:06, , 34F
攻擊動作也有幾秒鐘 反之拿另外一個 也是有動作
06/30 03:06, 34F

06/30 03:06, , 35F
但就是兩個放一起 就卡卡的 這是什麼原因呢?
06/30 03:06, 35F

06/30 03:11, , 36F
你要了解到你寫的程式中,何時呼叫切換影格
06/30 03:11, 36F

06/30 03:11, , 37F
目前很大的一個問題是,你attack只有在0的時候
06/30 03:11, 37F

06/30 03:12, , 38F
b+=150之後,第二趟>0就會切掉了(wait沒拿掉的情況)
06/30 03:12, 38F

06/30 03:12, , 39F
因此放在一起的時候attack就會出問題
06/30 03:12, 39F

06/30 03:13, , 40F
之所以拿掉wait會變順,你要了解到底是因為b維持在0
06/30 03:13, 40F

06/30 03:13, , 41F
還是因為wait拿掉之後就算b+=150也沒有切換影格的動作
06/30 03:13, 41F

06/30 03:14, , 42F
才因此停在attack讓你看到他的動作的?
06/30 03:14, 42F

06/30 03:24, , 43F
原來有這層涵義 完全沒發現到B值一變 就馬上變換影格了
06/30 03:24, 43F

06/30 03:26, , 44F
所以才需要延遲時間去跑 不然狀態切換太快就會造成
06/30 03:26, 44F

06/30 03:26, , 45F
影格卡卡的
06/30 03:26, 45F
文章代碼(AID): #1E2rtXgr (Flash)
文章代碼(AID): #1E2rtXgr (Flash)