【问题标题】:How can I add eventListener to all objects that have the same class in AS3?如何将 eventListener 添加到 AS3 中具有相同类的所有对象?
【发布时间】:2013-02-25 18:46:23
【问题描述】:

我在舞台上有多个文本字段,我想一次向所有文本字段添加一个 eventListener,而不必为每个文本字段分配实例名称。我可以通过简单地向 TextField 类添加一个 eventListener 来做到这一点,以便每个文本对象都可以拥有这个 eventListener 吗? 在此先感谢

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    如果您的 TextField 在主舞台上,您可以这样做:

     for (var i:int=0; i<this.numChildren; i++) {
          var do:DisplayObject = this.getChildAtIndex(i);
          if (do is TextField) {
               do.addEventListener (yourListener, yourCallback);
    
          }
    
     }
    

    【讨论】:

    • 这不需要某种递归来获得嵌套的孩子吗?
    • 他写道他有他们在舞台上,但我会编辑我的答案 thx
    【解决方案2】:

    如果您要让 TextFields 在显示列表中打开或关闭,您可以执行一些操作,例如为 ADDED_TO_STAGE 添加一个侦听器。此事件不会冒泡,因此您需要将 useCapture 标志设置为 true。

    监听器可能看起来像:

    受保护的函数 onAdded(e:Event):void { if (e.target 是 TextField) { e.addEventListener(someEvent, someFunction); } }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2012-08-25
      • 2018-04-30
      相关资源
      最近更新 更多