iT邦幫忙

DAY 23
2

Flash掰掰!? 不想放棄的囧MD系列 第 23

簡單玩一下AS3.0(三) - Flash(23)

把as寫在影格觸發的方法了解後,

再來我們要試著使用按鈕方法,當點按後才觸發 mc 執行 function

配備好一個可操作的UI

在這裡~我把功能配置在左右兩側以及下方,mc 則在中間以方便觀察動作,

左邊的功能,主要放置來控制人物的動作,

其實在按鈕的設計上,可以在直覺一點~但現在就先拿數字湊合著用吧~XDD

右邊的話,是要來控制背景一些其他的物件,

譬如說: Spotlight效果、霓虹燈或是彩帶等等的特殊效果,但並不會影響主要的 mc ,

下方則是用來操作 mc 物件屬性的部分,

例如:Aplha、scarlX、scarlY、或是 X、Y 軸等之類的參數,

先這樣,其他的就想到再來加嘍~

AS小試身手

既然UI設定好了,那麼接著就要開始來著手編寫一些入門的as嘍,

先來回憶一下, mc 由左至右實體名稱分別是 p01_mc、p02_mc、p03_mc ,

但是按鈕還未設定實體名稱...恩~那就來做吧!!

因為要先來控制人物動作的部分,所以先幫最左排的 btn(按鈕)設立實體名稱

我們由上至下分別命名為 b01_btn、b02_btn、b03_btn、b04_btn ,

這樣該作用的物件都有實體名稱了,

確認ok~再來就是開啟動作面板(F9),然後在最上方的as圖層點按來寫入as~

首先,我想要當點按 b01_btn 後,讓 p01_mc 可以執行mc本身 f2 的動作,

b01_btn.addEventListener(MouseEvent.CLICK,frame_01);
function frame_01(e) {
	p01_mc.gotoAndStop(2);
}

來說明一下,

1 行是要讓 b01_btn 去偵聽 frame_01 這個 function

MouseEvent.CLICK 是指當滑鼠按下後,會觸發執行 frame_01 的動作~

2~4 行,則是撰寫這個 function 的內容,

( )裡面是參數,是必須要有一個值在裡面(可隨意),{ }裡面則是 function 所要執行的動作~

3 行寫到,要讓 p01_mc 前往並停止在 f2 ,而 p01_mc 的 f2 就是我們要的第 2 個動作,

所以當這整段下完之後,b01_btn 這個按鈕就可以讓 p01_mc 去做前往 f2 的動作嘍。

我們發布試試看吧~!!!

以此類推,完成左邊功能鍵

說完 b01_btn 的按鈕的設定之後,我們接著來做 b02_btn 以及 b03_btn ,

b01_btn.addEventListener(MouseEvent.CLICK,frame_01);
b02_btn.addEventListener(MouseEvent.CLICK,frame_02);
b03_btn.addEventListener(MouseEvent.CLICK,frame_03);

function frame_01(e) {
	p01_mc.gotoAndStop(2);
}
function frame_02(e) {
	p02_mc.gotoAndStop(3);
}
function frame_03(e) {
	p03_mc.gotoAndStop(4);
}

我的寫法是,會把 addEventListener 位置整合再一起,然後 function 整合在一堆,

這樣,就完成了讓 b02_btn 執行 p02_mc 前往 f3 ,b03_btn 執行 p03_mc 前往 f4 的動作,

接著再發佈一下,就會發現左排每個按鈕都可以操控一個 mc 嘍,

凡事都要有個reset按鍵

但是會發現到,按了之後 mc 的確會一直執行動作,但是想讓它回復該怎麼辦阿!!!!??

所以就以上面的敘述很簡單的幫 b04_btn 來寫個 funtion 讓所有 mc 歸位吧,

b01_btn.addEventListener(MouseEvent.CLICK,frame_01);
b02_btn.addEventListener(MouseEvent.CLICK,frame_02);
b03_btn.addEventListener(MouseEvent.CLICK,frame_03);
b04_btn.addEventListener(MouseEvent.CLICK,frame_04);

function frame_01(e) {
	p01_mc.gotoAndStop(2);
}
function frame_02(e) {
	p02_mc.gotoAndStop(3);
}
function frame_03(e) {
	p03_mc.gotoAndStop(4);
}
function frame_04(e) {
	p01_mc.gotoAndStop(1);
	p02_mc.gotoAndStop(1);
	p03_mc.gotoAndStop(1);
}

這邊我們還沒開始用迴圈來寫,所以先用土法煉鋼的方式吧~XDDD

發布後就可以測試看看,b04_btn 是否能讓所有 mc 歸位了~


上一篇
簡單玩一下AS3.0(二) - Flash(22)
下一篇
簡單玩一下AS3.0(四) - Flash(24)
系列文
Flash掰掰!? 不想放棄的囧MD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言