·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3处理双击事件的三种方法

时间:2015-11-24 17:31酷播
经常编程的人士肯定会遇到一个问题,就是同时使用AS3中自带的MOUSE.CLICK和MOUSE.DOUBLE_CLICK会产生响应函数的冲突

经常编程的人士肯定会遇到一个问题,就是同时使用AS3中自带的MOUSE.CLICK和MOUSE.DOUBLE_CLICK会产生响应函数的冲突,如双击时,单击和双击的响应函数都会执行。以下代码可以较为完美地解决此问题。

【方法一】

 

import flash.events.MouseEvent;

import flash.events.TimerEvent;

var doubleClick:Boolean = false;

 

stage.addEventListener(MouseEvent.CLICK, mClick);

function mClick(e:MouseEvent):void

{

if (doubleClick)

{

doubleClick = false;

return;

}

 

doubleClick = true;

var timer:Timer = new Timer(260, 1);

timer.addEventListener(TimerEvent.TIMER, onTimer);

timer.start();

 

function onTimer(e:TimerEvent):void

{

if(doubleClick){

trace("在这里处理单击事件")

} else {

trace("在这里处理双击事件")

}

timer.removeEventListener(TimerEvent.TIMER, onTimer);

doubleClick = false;

}

}
【方法二】

mc.doubleClickEnabled=true

mc.addEventListener(MouseEvent.CLICK,chick)

mc.addEventListener(MouseEvent.DOUBLE_CLICK,double)

var sta=false

function double(e){

sta=true

}

function chick(e){

sta=false

var time=new Timer(260,1)

time.start()

time.addEventListener(TimerEvent.TIMER,func)

}

function func(e){

if(sta){

trace("双击")

}else{

trace("单击")

}

}
【方法三】

import flash.display.Sprite;

import flash.events.*;

import flash.utils.Timer;

 

public class MyButton extends Sprite

{

public var double:Boolean;

 

public function MyButton() {

super();

init();

}

 

public function init():void {

addEventListener( MouseEvent.CLICK , onClickHandler );

addEventListener( MouseEvent.DOUBLE_CLICK , onDoubleClickHandler );

}

 

public function onClickHandler( e:MouseEvent ):void {

double = false;

var timer:Timer = new Timer(260,1);

timer.addEventListener( TimerEvent.TIMER , checkClick );

timer.start();

}

 

public function onDoubleClickHandler( e:MouseEvent ):void {

double = true;

}

 

public function checkClick( e:TimerEvent ):void {

if( double ){

//监听这两个自定义事件即可

dispatchEvent( new Event( "mouseDoubleClick" , true ) );

}else{

dispatchEvent( new Event( "mouseSingleClick" , true ) );

}

}

}
 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器