作者likeazure (深藍韻鏡)
看板Flash
標題[問題] 如何在主時間軸定義MC裡的按鈕
時間Tue Aug 18 00:38:55 2009
使用as3,目標是製作一個可換頁的動畫,
擁有一個首頁(home)和三個頁面(a,b,c),會顯示在同一區塊
動畫開始時,先載入home,
然後出現三個點入其餘頁面的按鈕元件btn1,btn2.btn3(都在該區塊內)
(按鈕是最後出現,疊在頁面之上)
點選任一按鈕元件後,如同首頁一樣在該區塊播放出頁面及三個其餘頁面的按鈕
即為點選btn1,會載入a頁,然後出現btnhome,btn2,btn3的按鈕。
目前我的做法是分別將首頁及三個頁面的出現各做成MChome,MC1.MC2,MC3四個MC
分別放在四個圖層的"影格1"
但是由於讓影格播放的按鈕都在mc裡,請問該如何定義?
我寫在主時間軸上的好像都變成是重新定義,而不是真的抓到MC裡面的按鈕..
另外請問使用SimpleButton對不對? 因為若改成Button都會出現錯誤...
-------------------------------------
下面是我寫在主時間軸actions圖層影格1內的程式碼:
import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.display.SimpleButton;
var MChome:MovieClip = home;
var MC1:MovieClip = a;
var MC2:MovieClip = b;
var MC3:MovieClip = c;
var btn1:SimpleButton = new SimpleButton();
addChild(btn1);
var btn2:SimpleButton = new SimpleButton();
addChild(btn2);
var btn3:SimpleButton = new SimpleButton();
addChild(btn3);
var btnhome:SimpleButton = new SimpleButton();
addChild(btnhome);
btn1.addEventListener(MouseEvent.CLICK, one);
btn2.addEventListener(MouseEvent.CLICK, two);
btn3.addEventListener(MouseEvent.CLICK, three);
btnhome.addEventListener(MouseEvent.CLICK, h);
function h(e:MouseEvent):void {
MChome.visible = true;
MC1.visible = false;
MC2.visible = false;
MC3.visible = false;
MChome.gotoAndPlay(1);
}
function one(e:MouseEvent):void {
MChome.visible = false;
MC1.visible = true;
MC2.visible = false;
MC3.visible = false;
MC1.gotoAndPlay(1);
}
function two(e:MouseEvent):void {
MChome.visible = false;
MC1.visible = false;
MC2.visible = true;
MC3.visible = false;
MC2.gotoAndPlay(1);
}
function three(e:MouseEvent):void {
MChome.visible = false;
MC1.visible = false;
MC2.visible = false;
MC3.visible = true;
MC3.gotoAndPlay(1);
}
stop();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.157.63
→ aquarianboy:錯誤訊息是什麼? 08/18 08:45
→ likeazure:用以上的寫法是不會出現錯誤訊息,但是按下home跑完後出 08/18 09:06
→ likeazure:現的任一按鈕就毫無反應 08/18 09:07
→ likeazure:如果把SimpleButton改成Button就會出現1046:找不到 Type 08/18 09:10
→ likeazure:1046: 找不到 Type,或它不是編譯時期常數:Button。 08/18 09:10
→ aquarianboy:附個原始檔會比較簡單猜囉 08/18 09:33