作者oj113068 (橘子汁)
看板Flash
標題[問題] 用if判斷變數後轉換場警
時間Sun Jul 11 02:28:08 2010
大家好
我想用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
1F:→ Esvent:因為你是用onEnterFrame來判斷是否呼叫gotoAndPlay 07/11 03:33
2F:→ Esvent:所以只要開始偵聽onEnterFrame後 每跑一個影格那個function 07/11 03:35
3F:→ Esvent:就會被呼叫一次 也就是說在每進入一個影格時 都會gotoAndPl 07/11 03:36
4F:→ Esvent:ay到第一個影格 所以才會一直停在第一個影格上 07/11 03:37
5F:→ Esvent:把onEnterFrame去掉即可 07/11 03:41
6F:→ oj113068:!!!!!我以為寫在最後一格的話他不會影響前面Orz 07/11 11:13
7F:→ oj113068:我試試看,謝謝你!! 07/11 11:13
8F:→ oj113068:去掉onEnterFrame之後雖然會撥放,但場景的轉換不正確 07/11 11:17
9F:推 kawasumimai:去掉onEF之後加上_root吧 07/11 11:31
10F:→ oj113068:沒用T__T 你是說改成 _root.gotoAndPlay吧? 07/11 11:40
11F:推 kawasumimai:不是...是你所有的g都要改成_root.g 07/11 11:51
12F:→ kawasumimai:因為你主時間軸判定的是_root.g,按鈕的不是 07/11 11:51
13F:→ oj113068:結果好像是我函式沒命名Orz? 07/11 11:54
14F:→ Esvent:去掉onEnterFrame是onEnterFrame = function() { 整個去掉 07/11 14:03
15F:→ Esvent:只留下if就可以了 測試是不用加_root也可以跑 07/11 14:04
16F:→ Esvent:啊 是說場景轉換不正確 這個我就沒有注意到了 07/11 14:06
17F:→ Esvent:或許試著將按鈕命名 並把所有程式碼都寫在第一格就可以運作 07/11 14:08
18F:→ oj113068:我想我是基礎觀念有問題|||我解決了 謝謝你們 07/11 14:44
就像E大說的,如果想都寫在最後一格的話,直接用if
要用function()的話,寫在第一個場景的第一格
最後再呼叫就好了(倒地)
謝謝大家........
※ 編輯: oj113068 來自: 218.162.99.130 (07/11 14:45)