写了一个MouseProxy的代理类,整理好了单击和双击事件了。具体使用看附件
import mx.utils.Delegate;
/**
* 鼠标事件代理类
* @author 秋色烽火
*/
class com.set2get.ui.MouseProxy
{
private var _cid:Number = -1;
private var _mc:MovieClip;
private var _onClick:Function;
private var _onDoubleClick:Function;
public function MouseProxy($mc:MovieClip)
{
_mc = $mc;
}
private function onClick():Void {
if (_cid != -1) {
clearInterval(_cid);
_cid = -1;
goDoubleClick.apply(this);
//双击
} else {
_cid = setInterval(this, "goClick", 300);
}
}
private function goClick():Void {
clearInterval(_cid);
_cid = -1;
_onClick.apply(_mc);
}
private function goDoubleClick():Void {
_onDoubleClick.apply(_mc);
}
public function set Evt_Click($f:Function):Void
{
_onClick = $f;
_mc.onRelease = Delegate.create(this, this.onClick);
}
public function set Evt_DoubleClick($f:Function):Void
{
_onDoubleClick = $f;
}
}