有时我们在一些应用实例中可能会遇到这么一种需求:同一个组件,比如一个 button,需要同时监听单击 click 和 双击 double click 事件。通常在列表中,这种需要更为常见一些。例如有左右两个分栏列表,点击选中,可以作一些操作;双击列表项则可以将一侧列表项移动到另一侧。
我们知道,在 Flex 里面,有 click 事件和 doubleClick 事件。click 用于处理单击,doubleClick 用于处理双击。但是双击事件必然触发单击事件,为了避免双击时触发单击事件,需要使用setInterval或settimeout。代码如下
protected function g_clickHandler(event:MouseEvent):void { clearInterval(interval); interval=setInterval(deferredClickHandler, 200); //和setTimeout()一样 } private function deferredClickHandler() : void { this.parentApplication.curAlbumName=albumName; this.parentApplication.curAlbumUrl="./img/"+this.parentApplication.userAccount+"/"+albumName+"/"; clearInterval(interval); } protected function g_doubleClickHandler(event:MouseEvent):void { Alert.show("进入相册"); }