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

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

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

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

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