【问题标题】:stack overflow on XMLListCollection collectionEventXMLListCollection collectionEvent 上的堆栈溢出
【发布时间】:2009-11-21 19:39:07
【问题描述】:

我正在开发一个 Flex 3 项目,我正在使用一对 XMLListCollection(s) 来管理一个组合框和一个数据网格。

组合框部分运行良好。用于此的 XMLListCollection 是静态的。用户选择一个项目,并在“更改”时触发 addItem() 到第二个集合。然后第二个集合的数据网格显示更新的列表,一切都很好。

然而,数据网格是可编辑的。更复杂的是,我有另一个事件处理程序绑定到第二个 XMLLIstCollection 的“更改”事件,并且在该处理程序中,我对第二个列表进行了额外的更改。这实质上会导致第二个列表“更改”处理程序的无限循环(堆栈溢出 :D )。

我不确定如何处理这个问题。搜索已经提出了关于 AutoUpdate 功能的一两个想法,但我无法从中得到太多。特别是,行为仍然存在,一旦我重新启用就执行“更新”,所以我想我可能做错了。一般来说,我希望更新运行,而不是在该代码块期间运行。

感谢您的帮助!

【问题讨论】:

    标签: apache-flex collections events auto-update


    【解决方案1】:

    尝试将行为绑定到自定义事件而不是 CHANGE 事件。

    即做你现在正在做的事情,但是调度和处理一个自定义事件来完成工作。

    【讨论】:

      【解决方案2】:

      您是否考虑过使用 callLater? 直接操作 XMLListCollection 的源 XMLList 是否具有相同的结果? 你有没有考虑过这样的事情:

      private function changeHandler( event:Event ):void
      {
          event.target.removeEventListener( event.type, changeHandler );
      
          // your code here.
      
          event.target.addEventListener( event.type, changeHandler );
      }
      

      【讨论】:

      • 这看起来很有希望。我很想尝试一下。谢谢
      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2012-04-15
      • 2012-12-20
      相关资源
      最近更新 更多