[問題] 用if判斷變數後轉換場景,停在第一格?

看板Flash作者 (橘子汁)時間15年前 (2010/07/11 02:28), 編輯推噓2(2016)
留言18則, 3人參與, 最新討論串1/1
大家好 我想用if判斷變數後來轉換場景 做法是,(我是用AS 2.0) 1.場景的第一格寫下 var g=0; 2.動畫跑到最後一格後,在最後一格上面寫 onEnterFrame = function () { if (g == 1) { gotoAndPlay("展覽簡介", 1); } if (g == 2) { gotoAndPlay("慕夏生平", 1); } if (g == 3) { gotoAndPlay("代表作", 1); } if (g == 4) { gotoAndPlay("紀念品", 1); } }; 3.各自按鈕上寫 on (release) { g = 1; gotoAndPlay(37); } (四個按鈕類推) 場景是換了,也執行的正常 但是作到一半測試發現 轉換後他會停留在的場景"第一格",正常來講應該要繼續撥放直到碰見stop()吧... 我用的是gotoAndPlay 1.改成Play也沒用, 2.利用影格標籤也沒用 3.在場景的第一格增加Play也沒用Orz 4.爬文加_root....也沒用 (爬文發現我很久以前問過類似的問題,沒有人理我||||) 附上原始檔,請好心人幫我看看到底是什麼問題吧> < http://www.2shared.com/file/i0-g9Nt_/_online.html 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.99.130 ※ 編輯: oj113068 來自: 218.162.99.130 (07/11 02:28) ※ 編輯: oj113068 來自: 218.162.99.130 (07/11 02:30) ※ 編輯: oj113068 來自: 218.162.99.130 (07/11 02:31) ※ oj113068:轉錄至看板 Digital_Art 07/11 02:52

07/11 03:33, , 1F
因為你是用onEnterFrame來判斷是否呼叫gotoAndPlay
07/11 03:33, 1F

07/11 03:35, , 2F
所以只要開始偵聽onEnterFrame後 每跑一個影格那個function
07/11 03:35, 2F

07/11 03:36, , 3F
就會被呼叫一次 也就是說在每進入一個影格時 都會gotoAndPl
07/11 03:36, 3F

07/11 03:37, , 4F
ay到第一個影格 所以才會一直停在第一個影格上
07/11 03:37, 4F

07/11 03:41, , 5F
把onEnterFrame去掉即可
07/11 03:41, 5F

07/11 11:13, , 6F
!!!!!我以為寫在最後一格的話他不會影響前面Orz
07/11 11:13, 6F

07/11 11:13, , 7F
我試試看,謝謝你!!
07/11 11:13, 7F

07/11 11:17, , 8F
去掉onEnterFrame之後雖然會撥放,但場景的轉換不正確
07/11 11:17, 8F

07/11 11:31, , 9F
去掉onEF之後加上_root吧
07/11 11:31, 9F

07/11 11:40, , 10F
沒用T__T 你是說改成 _root.gotoAndPlay吧?
07/11 11:40, 10F

07/11 11:51, , 11F
不是...是你所有的g都要改成_root.g
07/11 11:51, 11F

07/11 11:51, , 12F
因為你主時間軸判定的是_root.g,按鈕的不是
07/11 11:51, 12F

07/11 11:54, , 13F
結果好像是我函式沒命名Orz?
07/11 11:54, 13F

07/11 14:03, , 14F
去掉onEnterFrame是onEnterFrame = function() { 整個去掉
07/11 14:03, 14F

07/11 14:04, , 15F
只留下if就可以了 測試是不用加_root也可以跑
07/11 14:04, 15F

07/11 14:06, , 16F
啊 是說場景轉換不正確 這個我就沒有注意到了
07/11 14:06, 16F

07/11 14:08, , 17F
或許試著將按鈕命名 並把所有程式碼都寫在第一格就可以運作
07/11 14:08, 17F

07/11 14:44, , 18F
我想我是基礎觀念有問題|||我解決了 謝謝你們
07/11 14:44, 18F
就像E大說的,如果想都寫在最後一格的話,直接用if 要用function()的話,寫在第一個場景的第一格 最後再呼叫就好了(倒地) 謝謝大家........ ※ 編輯: oj113068 來自: 218.162.99.130 (07/11 14:45)
文章代碼(AID): #1CEBkwji (Flash)