package
{
import flash.display.InteractiveObject;
import flash.events.MouseEvent;
import flash.utils.getTimer;
/**
* 双击工具(不使用Flash源生的方式,源生的方式是:第二下up时才触发,而这种方式是,第二次down时就触发)
* http://blog.csdn.net/linjf520/article/details/9314095
* @author jave.lin
* @date 2013-7-2
*/
public class DoubleClickUtil{
private static const DOUBLE_CLICK_INTNERVAL:int = 500;
private static var before_double_click_time:int = -1;
private static var isDoubleClick:Boolean = false;
private static var lastObj:InteractiveObject;
public static function registerDoubleClick(obj:InteractiveObject):void{
obj.addEventListener(MouseEvent.CLICK, onClick, false, int.MAX_VALUE);
obj.addEventListener(MouseEvent.MOUSE_DOWN, onDown, false, int.MAX_VALUE);
// obj.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick, false, int.MAX_VALUE);
obj.doubleClickEnabled = false;
}
public static function unRegisterDoubleClick(obj:InteractiveObject):void{
obj.removeEventListener(MouseEvent.CLICK, onClick, false);
obj.removeEventListener(MouseEvent.MOUSE_DOWN, onDown, false);
}
// private static function onDoubleClick(e:MouseEvent):void{
// trace("onDoubleClick");
// }
private static function onDown(e:MouseEvent):void{
// trace("onDown");
var timer:int = getTimer();
if(lastObj == e.currentTarget && before_double_click_time != -1){
// trace("minus:" + (timer - before_double_click_time));
// trace("can double?:" + ((timer - before_double_click_time)
1664331872
查看更多评论