2012-04-10 104 views
0

我目前正在设计一个应用程序,当按下按钮时它将展开以显示更多信息。我面临的一个主要问题是,如果在收缩时按下按钮以便再次展开按钮,坐标将从点击时保存下来,这意味着它不会回到其原始状态。在执行操作时禁用鼠标事件(单击)

我需要一种方法来禁用鼠标点击按钮,而TweenMax正在收缩按钮或从数组中提取坐标来完成其工作。

我已经设法从我的菜单类获取坐标数组到主类,但不能找出最好的方法来阻止问题的发生。

-

expand = false; 
(run menu function) 
item.addEventListener(MouseEvent.CLICK, boxExCo); 

private function boxExCo(e:MouseEvent):void 
{ 
    if (!expand) 
    { 
     selectedBox = e.target as Box; 
     boxX = selectedBox.x; 
     boxY = selectedBox.y; 
     expand = true; 
     TweenMax.to.... (expand) 
    } 
    else 
    { 
     expand = false; 
     TweenMax.to... (contract to coordinates) 
    } 
} 

回答

2

您需要使用item.removeEventListener(MouseEvent.CLICK, boxExCo);当你不再需要的情况下能够火,然后只需添加回去使用

item.addEventListener(MouseEvent.CLICK, boxExCo);当您希望事件能够再次开火。

一旦你开始补间最大,删除事件。

一旦完成,重新添加事件。

+0

我试过这个,但无法让它正常工作。我首先尝试使用TweenMax的onComplete属性,然后将它添加到补间的任一侧,但是从未有效。你有任何想法如何实施它没有我的努力? – 2012-04-10 03:25:14

+0

在启动补间之前,您应该立即移除该事件。然后在你应该添加一个'Event.COMPELTE'到补间,并将鼠标事件添加回该事件侦听器函数。 – 2012-04-10 12:47:52

+0

非常感谢!这工作出色。 – 2012-04-11 14:25:39

相关问题