as3按鈕事件
在剛開始學As3時,如果不知道按鈕的事件如onPress的話,實在是件很沒有頭緒的事情。
在 As3.0中,所有的時間都已經被Event統一管理了.相對As2.0來說,按鈕事件是在As3中變動最大的事件. 在As3.0中例如onPress等以前的按鈕事件寫法已經基本退出了歷史的舞臺.取而代之的是統一的管理和 使用(鼓掌....)
As3.0中,主要的按鈕元素仍然是MC(flash.display.MovieClip)和Button (flash.display.SimpleButton),值得一提的是,MovieClip類繼承自Sprite,而Simplebutton直接繼承 自InteractiveObject.可以說,Simplebutton類是少有超脫於Sprite類控制之外的顯示對象同學,恩, 我知道有有顆追逐自由的心......區別等下面說道了再繼續說.
介紹了顯示元素,那麼改介紹事件對象了,他就是繼承自Event的MouseEvent (flash.events.MouseEvent)了,其實踐列表如下:
CLICK
DOUBLE_CLICK
MOUSE_DOWN
MOUSE_MOVE
MOUSE_OUT
MOUSE_OVER
MOUSE_UP
MOUSE_WHEEL
ROLL_OUT
ROLL_OVER
中裏面的DOUBLE_CLICK就是江湖上傳聞已久的雙擊事件了。不過我 覺得DOUBLE_CLICK目前還是棵菜,As3中加入了DOUBLE_CLICK卻沒有什麼控制DOUBLE_CLICK與CLICK的好 辦法,讓我覺得有些草率.
話不多說了,我介紹下我寫的一個實例:
分別有如下文 件:click_test.fla,main.as,mybtn.as,mymc.as.
[1b]click_test.fla[/1b]
定義Document Class爲main.as,在庫中創建一個按鈕 (test_btn)和一個MC(test_mc),並分別命名爲test_btn類和test_mc類,基類分別爲mybtn.as和 mymc.as.
[1b]mybtn.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:場景上的實例類,繼承SimpleButton
*/
package {
import flash.display.SimpleButton;
public class mybtn extends SimpleButton {
public function mybtn() {
this.doubleClickEnabled=true;
}
}
}[1b]mymc.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:場景上的實例類,繼承MovieClip
*/
package {
import flash.display.MovieClip;
public class mymc extends MovieClip {
public function mymc() {
this.stop();
this.doubleClickEnabled=true;
this.buttonMode=true;
}
}
}需要說的是,MovieClip和SimpleButton兩者都doubleClickEnabled,而MC中的是來自 Sprite,SimpleButton中的則直接來自InteractiveObject,瞧這關係,嘖嘖.當然,用起來是一樣的, Sprite是繼承自InteractiveObject的.
[1b]main.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:測試MovieClip與SimpleButton的按鈕功能
main是場景控制類,
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class main extends Sprite {
var clickBtnA=new test_mc;
var clickBtnB=new test_btn;
trace("Install");
public function main() {
addMC();
dispatchLis(clickBtnA);
dispatchLis(clickBtnB);
}
private function addMC() {
addChild(clickBtnA);
addChild(clickBtnB);
clickBtnA.x=20;
clickBtnA.y=20;
clickBtnB.x=20;
clickBtnB.y=100;
}
protected function dispatchLis(target):void {
target.addEventListener( MouseEvent.CLICK, btnClick);
target.addEventListener( MouseEvent.DOUBLE_CLICK ,btnDoubleClick);
target.addEventListener( MouseEvent.MOUSE_DOWN ,btnMd);
target.addEventListener( MouseEvent.MOUSE_OVER ,btnMo);
target.addEventListener( MouseEvent.MOUSE_UP ,btnMu);
target.addEventListener( MouseEvent.ROLL_OVER ,btnRover);
target.addEventListener( MouseEvent.ROLL_OUT ,btnRout);
}
protected function btnClick( evt:MouseEvent):void {
trace( "Click"+evt.currentTarget);
}
protected function btnDoubleClick( evt:MouseEvent):void {
trace( "DoubleClick"+evt.currentTarget);
}
protected function btnMd( evt:MouseEvent):void {
trace( "MouseDown"+evt.currentTarget);
}
protected function btnMu( evt:MouseEvent):void {
trace( "MouseUp"+evt.currentTarget);
}
protected function btnMo( evt:MouseEvent):void {
trace( "MouseOver"+evt.currentTarget);
}
protected function btnRover( evt:MouseEvent):void {
trace( "MouseRover"+evt.currentTarget);
}
protected function btnRout( evt:MouseEvent):void {
trace( "MouseRout"+evt.currentTarget);
}
}
}
本文轉自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/2004.html
在 As3.0中,所有的時間都已經被Event統一管理了.相對As2.0來說,按鈕事件是在As3中變動最大的事件. 在As3.0中例如onPress等以前的按鈕事件寫法已經基本退出了歷史的舞臺.取而代之的是統一的管理和 使用(鼓掌....)
As3.0中,主要的按鈕元素仍然是MC(flash.display.MovieClip)和Button (flash.display.SimpleButton),值得一提的是,MovieClip類繼承自Sprite,而Simplebutton直接繼承 自InteractiveObject.可以說,Simplebutton類是少有超脫於Sprite類控制之外的顯示對象同學,恩, 我知道有有顆追逐自由的心......區別等下面說道了再繼續說.
介紹了顯示元素,那麼改介紹事件對象了,他就是繼承自Event的MouseEvent (flash.events.MouseEvent)了,其實踐列表如下:
CLICK
DOUBLE_CLICK
MOUSE_DOWN
MOUSE_MOVE
MOUSE_OUT
MOUSE_OVER
MOUSE_UP
MOUSE_WHEEL
ROLL_OUT
ROLL_OVER
中裏面的DOUBLE_CLICK就是江湖上傳聞已久的雙擊事件了。不過我 覺得DOUBLE_CLICK目前還是棵菜,As3中加入了DOUBLE_CLICK卻沒有什麼控制DOUBLE_CLICK與CLICK的好 辦法,讓我覺得有些草率.
話不多說了,我介紹下我寫的一個實例:
分別有如下文 件:click_test.fla,main.as,mybtn.as,mymc.as.
[1b]click_test.fla[/1b]
定義Document Class爲main.as,在庫中創建一個按鈕 (test_btn)和一個MC(test_mc),並分別命名爲test_btn類和test_mc類,基類分別爲mybtn.as和 mymc.as.
[1b]mybtn.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:場景上的實例類,繼承SimpleButton
*/
package {
import flash.display.SimpleButton;
public class mybtn extends SimpleButton {
public function mybtn() {
this.doubleClickEnabled=true;
}
}
}[1b]mymc.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:場景上的實例類,繼承MovieClip
*/
package {
import flash.display.MovieClip;
public class mymc extends MovieClip {
public function mymc() {
this.stop();
this.doubleClickEnabled=true;
this.buttonMode=true;
}
}
}需要說的是,MovieClip和SimpleButton兩者都doubleClickEnabled,而MC中的是來自 Sprite,SimpleButton中的則直接來自InteractiveObject,瞧這關係,嘖嘖.當然,用起來是一樣的, Sprite是繼承自InteractiveObject的.
[1b]main.as[/1b]
/*@
Author:frank
Site:www.2solo.cn
Date:2008.01.13
Info:測試MovieClip與SimpleButton的按鈕功能
main是場景控制類,
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class main extends Sprite {
var clickBtnA=new test_mc;
var clickBtnB=new test_btn;
trace("Install");
public function main() {
addMC();
dispatchLis(clickBtnA);
dispatchLis(clickBtnB);
}
private function addMC() {
addChild(clickBtnA);
addChild(clickBtnB);
clickBtnA.x=20;
clickBtnA.y=20;
clickBtnB.x=20;
clickBtnB.y=100;
}
protected function dispatchLis(target):void {
target.addEventListener( MouseEvent.CLICK, btnClick);
target.addEventListener( MouseEvent.DOUBLE_CLICK ,btnDoubleClick);
target.addEventListener( MouseEvent.MOUSE_DOWN ,btnMd);
target.addEventListener( MouseEvent.MOUSE_OVER ,btnMo);
target.addEventListener( MouseEvent.MOUSE_UP ,btnMu);
target.addEventListener( MouseEvent.ROLL_OVER ,btnRover);
target.addEventListener( MouseEvent.ROLL_OUT ,btnRout);
}
protected function btnClick( evt:MouseEvent):void {
trace( "Click"+evt.currentTarget);
}
protected function btnDoubleClick( evt:MouseEvent):void {
trace( "DoubleClick"+evt.currentTarget);
}
protected function btnMd( evt:MouseEvent):void {
trace( "MouseDown"+evt.currentTarget);
}
protected function btnMu( evt:MouseEvent):void {
trace( "MouseUp"+evt.currentTarget);
}
protected function btnMo( evt:MouseEvent):void {
trace( "MouseOver"+evt.currentTarget);
}
protected function btnRover( evt:MouseEvent):void {
trace( "MouseRover"+evt.currentTarget);
}
protected function btnRout( evt:MouseEvent):void {
trace( "MouseRout"+evt.currentTarget);
}
}
}
本文轉自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/2004.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.