问题:flex在相应双击事件的时候,如果此组件已经添加了单击事件,则会先相应单击事件,而后在相应双击事件。
解决办法:使用定时器,当相应单击时间的时候,先等待,如果在等待时间内没有第二次触发,则认为是单击,否则为双击。
代码:
解决办法:使用定时器,当相应单击时间的时候,先等待,如果在等待时间内没有第二次触发,则认为是单击,否则为双击。
代码:
//判断单击双击事件,如果在200毫秒内点击2次则相应双击事件,否则相应单击事件。
private var interval : Number = 0;
protected function tunnelLane_clickHandler(event:MouseEvent):void
{
clearInterval(interval);//清除周期时间
interval = setInterval(deferredClickHandler, 200);
}
protected function tunnelLane_doubleClickHandler(event:MouseEvent):void
{
clearInterval(interval);
Alert.show("双击");
}
private function deferredClickHandler() : void
{
Alert.show("单击");
clearInterval(interval);
}
<s:Group width="100%" height="100%" maskType="alpha" doubleClickEnabled="true" click="tunnelLane_clickHandler(event)" doubleClick="tunnelLane_doubleClickHandler(event)">
</s:Group>
//注意:默认双击事件是不响应的,需要doubleClickEnabled="true"