我试着这样做:
panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup);
但它不起作用。
适用于
panel.addEventListener(MouseEvent.CLICK,showEditPopup);
所以,我想我必须先启用双击。需要帮助。
答案 0 :(得分:14)
您必须先为您的面板启用双击:
panel.doubleClickEnabled=true;
然后你可以这样做:
panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup);
答案 1 :(得分:1)
今天早上我遇到了这个问题,试图在我的游戏中添加双击。 这就是我发现的。
首先,您必须启用doubleclick,如下所示:
panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup);
您还可以在同一功能上添加单击CLICK,以防止双击时发生两次点击,如下所示:
panel.addEventListener(MouseEvent.CLICK,showEditPopup);
然后这将是函数,一次与两个进行交互:
function showEditPopup(e:MouseEvent) {
if (e.type == "click") {
//single click
} else if (e.type == "doubleClick") {
//double click
}
}
现在出现了2个问题。首先,你必须在听众之前启用这样的双击:
panel.enableDoubleClick = true;
然后更糟糕的是,如果显示对象绑定到另一个具有鼠标事件的显示对象,则必须为子节点禁用这些事件,以便双击工作。像这样:
panel.mouseChildren = false;
这对我不好,因为这就是我在做的事情。 创建了一个技能卡,技能有mouseevent.move_over来显示工具提示。但后来我想双击卡片将其放置/从甲板上取下。但它没有奏效,因为附在那部电影剪辑上的技能在其中有鼠标。所以我不得不禁用它们并找到另一种方法来实现它。因为工具提示没有显示,小鼠的孩子被设置为假,我没有选择让它绕过这些事件。
这就是为什么计时器解决方案确实看起来更好的原因。你可以在双击的等待时间内达到1秒。它不会影响人,甚至适合最慢的家伙;)