flash按鈕中的八個(gè)事件有什么區(qū)別?
[摘自] http://www.flash8.net/
按鈕中的八個(gè)事件有什么區(qū)別?
解決思路
在“影片控制”類的語句中還有一個(gè)與我們制做flash密切相關(guān)的on命令。這個(gè)命令是專門為按鈕設(shè)計(jì)的,它提供了八種按鈕的事件。分別是按下,滑過,釋放,滑離,外部釋放,拖過,拖離和按鍵。最后一種是定義鍵盤的事件。這八種時(shí)間在我們平時(shí)的制作中經(jīng)常可以用到,每一種時(shí)間都有不同的效果,下面我們就結(jié)合事例給大家分析一下。
具體步驟
首先我們制作一個(gè)簡單的移動(dòng)漸變動(dòng)畫。為了直觀地說明按鈕的功能,我們?cè)诘?幀加入as:stop():。如圖3.2.1.-11所示。

圖3.2.1-11 制作一個(gè)簡單的動(dòng)畫
然后我們新建一層制作一個(gè)按鈕,或者【窗口】|【公用庫】|【按鈕】,打開公用庫按鈕面板,從里面選擇一個(gè)按鈕拖放到圖層2的第1幀。如圖3.2.1-12所示。

圖3.2.1-12 拖放按鈕到場(chǎng)景中
最后,也是非常重要的一點(diǎn)就是必須要在選中按鈕的狀態(tài)下,打開as面板。雙擊【動(dòng)作】|【影片控制】中的on命令,右邊會(huì)出現(xiàn)on的參數(shù)面板。如圖3.2.1-13所示。

圖3.2.1-13 on的參數(shù)面板
下面我們就詳細(xì)地向大家介紹一下這八種事件的使用。
1, 按下:我們勾選“按下”框,然后選擇動(dòng)作語句,雙擊【動(dòng)作】|【影片控制】中的play 命令。完成!
完整的action是:
on(press){ //設(shè)定鼠標(biāo)事件為按下,然后執(zhí)行大括號(hào)里面的語句。
play(); //按鈕響應(yīng)后執(zhí)行play(播放)動(dòng)作
}
當(dāng)然,在大括號(hào)里面還可以用其他的語句,比如說,gotoAndPlay(yourframe); //點(diǎn)擊按鈕后,就會(huì)從你設(shè)置的幀播放。
我們參考源文件
on----1.fla,體會(huì)一下它的效果。
2, 釋放:這也是flash mx默認(rèn)的按鈕事件。我們勾選“釋放”。與第一個(gè)事件相同加入play命令。完成的語句如下:on(release){ //當(dāng)鼠標(biāo)按下釋放的時(shí)候,執(zhí)行下面的語句動(dòng)作。
play(); //按鈕響應(yīng)后執(zhí)行play(播放)動(dòng)作。
}
我們參考一下源文件
on----2.fla,可以看到,當(dāng)鼠標(biāo)左鍵按下按鈕的時(shí)候,并沒有激發(fā)播放動(dòng)作,而是當(dāng)鼠標(biāo)左鍵放開的時(shí)候,執(zhí)行了播放動(dòng)作。這也是與“按下”事件不同的地方。
3, 外部釋放:添加語句的方法同上。完整的語句如下:
on (releaseOutside) { //當(dāng)鼠標(biāo)在按鈕外部釋放的時(shí)候執(zhí)行下面的語句。
play(); //按鈕響應(yīng)后執(zhí)行播放動(dòng)作。
}
通過這個(gè)例子我們知道,當(dāng)鼠標(biāo)左鍵在按鈕上按住并移動(dòng)到按鈕以外的地方放開后,觸發(fā)了按鈕的動(dòng)作。這是一個(gè)具有非常想象力的事件,大家可以利用on的這個(gè)事件來制作游戲。
參看源文件
on----3.fla。
4, 滑過:制作方法同上,完整的as語句為:
on(rollover){ //當(dāng)鼠標(biāo)滑動(dòng)到按鈕上時(shí)執(zhí)行下面的動(dòng)作。
play(); //按鈕執(zhí)行播放動(dòng)作。
}
當(dāng)鼠標(biāo)從按鈕上滑過的時(shí)候,動(dòng)畫就開始執(zhí)行播放動(dòng)作了,而不需要點(diǎn)擊它。我們可以利用on的這個(gè)特點(diǎn)來制作一些圖示板,非常簡單有效。參看源文件
on----4.fla。
5, 滑離:制作方法同上,完整的as語句為:
on(rollOut){ //當(dāng)鼠標(biāo)滑動(dòng)到按鈕上并離開時(shí)執(zhí)行下面動(dòng)作。
Play(): //按鈕響應(yīng)播放動(dòng)作。
}
滑離與滑過并不是相同的,滑離是指鼠標(biāo)滑動(dòng)到按鈕上并離開以后開始響應(yīng),而滑過是指只要鼠標(biāo)滑到按鈕上,就開始執(zhí)行動(dòng)作。參看源文件
on----5.fla。
6,拖過:完整的as是:on(Drag Out){ //當(dāng)鼠標(biāo)拖過的時(shí)候執(zhí)行下面的動(dòng)作。
play(); //執(zhí)行播放動(dòng)作。
}
拖過的效果是在按鈕上點(diǎn)擊并按住鼠標(biāo)不放,移出按扭區(qū),再移回按鈕上釋放的事件。注意:此例中是一個(gè)文字按鈕,在做文字按鈕的時(shí)候,應(yīng)在文字的下方用一透明方塊,以增加按鈕的反應(yīng)區(qū)域,或者在按鈕的第4幀繪制一個(gè)矩形來增加反映區(qū)。參看源文件
on----6.fla。
7,拖離:完整的as是:on (dragOut) { //當(dāng)鼠標(biāo)拖離按鈕時(shí)執(zhí)行下面的動(dòng)作。
play(); //執(zhí)行播放動(dòng)作
}
拖離與拖過有所不同,只要在按鈕上按住鼠標(biāo)左鍵然后移動(dòng)到按鈕外就會(huì)相應(yīng)。他于滑離的區(qū)別在于拖離需要按住鼠標(biāo)左鍵。我們可以參考一下源文件
on----7.fla來體會(huì)一下。
1, 按鍵:我們勾選“按鍵”以后,右邊的參數(shù)框就成可選狀態(tài)。意思是利用鍵盤上面的按鍵來激發(fā)按鈕執(zhí)行動(dòng)作。我們添入“k”。如圖3.2.1-14所示。

圖3.2.1-14 “按鍵”參數(shù)設(shè)置
完整地as語句為:on (keyPress "z") { //當(dāng)按下鍵盤中的“z”健時(shí)執(zhí)行下面的動(dòng)作。
play(); //執(zhí)行播放動(dòng)作
}
參看源文件
on----8.fla。
注 意 ——在給動(dòng)畫作品添加按鈕的時(shí)候應(yīng)該放到單獨(dú)一層,這樣便于修改。
提 示 ——on為按鈕上的動(dòng)作,所以我們必須首先要選中按鈕,以后才可以添加on語句。有的朋友在論壇里面提問,“為什么我的on為灰色不可選狀態(tài)?”原因就是你沒有選中按鈕。
技 巧 ——在一般flash作品中,大家不會(huì)有意區(qū)分這些on的功能的,一般采用默認(rèn)的語句。如果沒有特殊說明,你使用了拖離,滑離等事件來制作“replay”按鈕,會(huì)讓人們摸不著頭腦的。
試一試 ——我們了解了on得這么多的功能,利用這些功能可以輕易的制作出flash課件,flash游戲里面的效果,大家不妨試一試。
分 析——on語句的功能與按鈕息息相關(guān),有按鈕的地方一定會(huì)有on語句的使用。而有flash作品的地方,就會(huì)有按鈕的出現(xiàn),所以說on的重要作用不可忽視。今天向大家詳細(xì)地介紹了on的各種功能,我們就可以結(jié)合按鈕自身的特點(diǎn),發(fā)揮他們的功能。
特別提示
on—1至on—8范例源文件中沒有使用公用庫中的按鈕,目的在于讓大家習(xí)慣自己制作按鈕。按鈕時(shí)一部完整的flash作品中不可缺少的部分,所以,同樣需要我們來精心制作。
特別說明
這一節(jié)看起來內(nèi)容比較多,但是知識(shí)比較容易掌握。例如on的八個(gè)事件中,一般經(jīng)常使用釋放,滑過的事情,而其它事件使用頻率比較少。但如果我們制作課件或者游戲等作品還是會(huì)使用到的。
文字按鈕的問題,我們?cè)谇耙徊糠种幸呀?jīng)講過了。一定要注意文字按鈕地反應(yīng)區(qū)。
相關(guān)問題
1, 如何制作永遠(yuǎn)也碰不到的按鈕?
我們通過on語句中的滑過事件,配合goto語句來完成這個(gè)效果。我們制作一個(gè)按鈕,拖放到主場(chǎng)景中。復(fù)制四幀,并改變第2幀,第3針,第4幀,第5幀中按鈕的位置。回到第1幀,在幀上加入stop,讓動(dòng)畫在第1幀停止。
在第1幀的按鈕中添加as:on (rollOver) { //當(dāng)鼠標(biāo)經(jīng)過時(shí)執(zhí)行下面的動(dòng)作。
gotoAndStop(2); //轉(zhuǎn)到并停止在第2幀。
}
在第2幀的按鈕中添加as:on (rollOver) {
gotoAndStop(3);
}
在第3幀的按鈕中添加as: on (rollOver) {
gotoAndStop(4);
}
第4幀的按鈕中添加as: on (rollOver) {
gotoAndStop(5);
}
第5幀的按鈕中添加as:on (rollOver) {
gotoAndStop(1);
}
這樣我們?cè)谶@五幀中形成了一個(gè)循環(huán),依次跳轉(zhuǎn),所以你永遠(yuǎn)也點(diǎn)擊不到這個(gè)按鈕。
參看源文件
on----9.fla。
2, 如何停止flash中的聲音?
在“影片控制”中還有最后一個(gè)語句,就是stopAllSound。意思是關(guān)閉聲音。下面這個(gè)flash事例就是利用stopAllSound制作的關(guān)閉音樂的按鈕。這條語句沒有參數(shù),可以加到幀上或者按鈕上。事例中的完整as為:on (release) { // 當(dāng)按鈕按下時(shí)執(zhí)行下面語句。
stopAllSounds(); //停止所有聲音
}
請(qǐng)參考源文件
stopAllSound.fla。