以下是引用片段:
import mx.utils.Delegate;
import mx.core.UIObject;
class DBClick {
public static var DELAY_TIME:Number = 200;
private var _mc:UIObject;
private var intervalID:Number;
private var delayTime:Number;
public function DBClick(mc:UIObject) {
_mc = mc;
_mc.onMouseUp = Delegate.create(this, onClick);
}
private function onClick() {
if (!delayTime) {
delayTime = getTimer();
if (intervalID != undefined) {
clearInterval(intervalID);
}
intervalID = setInterval(this, "run", DELAY_TIME);
} else {
if ((getTimer()-delayTime)<DELAY_TIME) {
_mc.dispatchEvent({target:_mc, type:'onDClick'});
}
delayTime = null;
}
}
private function run():Void {
if (delayTime) {
_mc.dispatchEvent({target:_mc, type:'onClick'});
delayTime = null;
clearInterval(intervalID);
}
}
public static function init(mc:UIObject) {
var dClick = new DBClick(mc);
}
}
使用:
import DBClick;
DBClick.init(_btn);
_btn.addEventListener("onDClick", this);
_btn.addEventListener("onClick", this);
function onDClick()
{
_btn.label="你刚才双击了我"
}
function onClick()
{
_btn.label="你刚才单击了我"
}