我正在使用flex4中的自定义List组件。我已经创建了一个自定义的ItemRenderer,一切看起来都像我想要的那样,但我正试图获得双击事件。我正在接收按键和所有其他事件,但不是这个。我已启用双击List组件
doubleClickEnabled="true"
我为
添加了一个事件监听器ListEvent.ITEM_DOUBLE_CLICK
我可以根据需要点击,但事件不会被触发。 我可以使用任何建议。 感谢。
答案 0 :(得分:5)
您希望收听MouseEvent.DOUBLE_CLICK
,然后您可以使用event.target
找出点击的内容。
答案 1 :(得分:1)
因为这个原因,我把头撞在墙上好几个小时! Adobe正在向后推进组件功能!无论如何,我找到了一个不错的解决方案:
我们要将DOUBLE_CLICK事件监听器添加到列表的dataGroup,这是项目的容器:
list.dataGroup.doubleClickEnabled = true;
list.dataGroup.addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);
现在它工作得很好,不会从滚动条中激发双击,但是在列表中没有项目的情况下,从开放空间(dataGroup本身)发出双击。所以我们只在e.target!= dataGroup:
中继续事件处理程序private function handleDoubleClick(e:MouseEvent):void
{
if (list.dataGroup != e.target)
{
// double click code
}
}
现在它工作正常:) p!我们不应该把时间花在这些东西上......
糟糕的解决方案 - >不要试图将e.target的类与listRenderer的列表类进行比较,因为有时e.target是项目的实际标签。