是否可以临时删除eventListener(即在执行函数之前)

时间:2011-06-06 16:56:00

标签: actionscript-3 addeventlistener

我正在做动作脚本3,并且想知道是否可以暂时删除和eventListner。我知道removeEventListener,它完全删除了eventListener,我无法再次单击该按钮。

如果您需要更多详细信息,请参阅确切的问题。我的功能是当按下按钮时,会出现一个对象。在生成此对象的函数中,有一个eventListener,它导致一个允许用户按下该对象的函数。按下该对象时,它会消失,按钮将会生成动画。但是,由于原始eventListener仍然存在,因此您可以在运动时按对象并创建新对象。所以要点:我想要做的是在按钮移动时禁用eventListener,并在停止时重新激活它。

2 个答案:

答案 0 :(得分:0)

如果要禁用其功能,最好删除侦听器。但是,如果要在不删除侦听器的情况下禁用其单击功能,则可以将.mouseEnabled设置为false。

答案 1 :(得分:0)

最好的方法是简单地使用一个标志来告诉函数动画是否完整。以下是我正在讨论的使用TweenLite作为补间库的示例:

public class CreateButton extends Sprite{
        private var animating:Boolean = false;

        public function CreateButton(){
            this.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
        }

        private function onClick(event:MouseEvent):void{
            if(this.animating == false){
                // Trigger creation functionality
                TweenLite.to(this, 0.5, {/* Parameters for the actual animation */ onComplete:animationComplete});      
                this.animating = true;
            }
        }

        private function animationComplete():void{
            this.animating = false;
        }
    }