【问题标题】:flash as3 check event listenerflash as3 检查事件监听器
【发布时间】:2011-03-01 17:06:39
【问题描述】:

他们是否可以检查事件侦听器是否已存在以将其移除?

stage.addEventListener(MouseEvent.CLICK, clickdownfunction);

基本上,我想删除监听器,但有时它已经被删除了,所以我想检查它是否存在,如果存在,则将其删除。

这可能吗?

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    从

    查看hasEventListener()函数

    https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/IEventDispatcher.html#hasEventListener()

    我不太确定您为什么要进行该检查。删除不存在的侦听器不会使 Flash 丢弃异常或错误,因此检查只会增加不必要的开销。

    【讨论】:

      【解决方案2】:

      您无法检查特定函数是否已注册为侦听器,但可以检查是否已注册类型。可以这样做:

      hasEventListener(type:String):Boolean
      

      或者你也可以直接拨打removeEventListener,如果它没有注册,它会忽略这个电话。

      希望对你有帮助,

      【讨论】:

      • 有时我们必须检查一个特殊的事件。这不酷。
      【解决方案3】:

      以下是仅当事件侦听器处于活动状态时才需要删除它的代码:

      if(stage.hasEventListener(MouseEvent.CLICK))
           stage.removeEventListener(MouseEvent.CLICK, clickdownfunction);
      

      【讨论】:

        【解决方案4】:

        你也可以使用Fingers:

         on(stage).click -= clickdownfunction;
        

        【讨论】:

          猜你喜欢
          • 2011-03-02
          • 1970-01-01
          • 2011-06-28
          • 2012-05-04
          • 2010-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多