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

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

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

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

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