/**
* @author sonygod
*/
import mx.events.EventDispatcher;
class Dbmc {
private var time1:Number;
private var time2:Number;
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
private static var _mixin1 = EventDispatcher.initialize(Dbmc.prototype);
public var owen:MovieClip;
public function Dbmc(mc:MovieClip, show:Boolean) {
trace("loading....");
owen = mc;
owen.useHandCursor = show;
EventDispatcher.initialize(owen);
mcdb();
}
public function mcdb() {
owen.onPress = function() {
time1 = getTimer();
//获取按下键的时间
//获取按下的键值
//------------双击检测----------------
//第一个条件是检验双击时间,只要时间间隔在150毫秒内都算双击,可以按个人喜好增大或减小时间间隔。第二个条件是两次按下的是同一个键
if (time1-time2<150) {
this.dispatchEvent({type:"onDbClick", target:this});// 双击
}else{
this.dispatchEvent({type:"onClick", target:this});// 单击
}
};
owen.onRelease = function() {
time2 = getTimer();
};
}
}
使用:
/**
* @author sonygod
*/
var bb:Dbmc = new Dbmc(mc,false);
var myObj = new Object();
myObj.onDbClick = function(evtObject:Object):Void {
trace("双击*********************");
};
myObj.onClick = function(evtObject:Object):Void {
trace("单击*********************");
};
bb.owen.addEventListener("onDbClick", myObj);
bb.owen.addEventListener("onClick", myObj);