Flex4列出项目双击事件

时间:2010-01-10 17:26:23

标签: list actionscript-3 events flex flex4

我正在使用flex4中的自定义List组件。我已经创建了一个自定义的ItemRenderer,一切看起来都像我想要的那样,但我正试图获得双击事件。我正在接收按键和所有其他事件,但不是这个。我已启用双击List组件

 doubleClickEnabled="true"

我为

添加了一个事件监听器
ListEvent.ITEM_DOUBLE_CLICK

我可以根据需要点击,但事件不会被触发。 我可以使用任何建议。 感谢。

2 个答案:

答案 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是项目的实际标签。