如何在Flex中遍历/重建UIComponent树结构

时间:2011-07-21 14:50:34

标签: flex tree traversal

我有一些UIComponent分组,可能看起来像“Group”和“Element”这样的类。

组可以有子项,子项可以是元素或组,基本上类似于文件系统或几个图形程序中的str + g组功能。最简单的一个组是一个只有子项的组,它们也是树中最低级别的组。

编辑: 显示层次结构已经存在,我尝试将其持久化为xml。

Group
   - element
   - Group
      - element
      - Group
         -element
         -element
   - element
   - element

我想在xml文档中重建此结构以实现持久性。 我知道如何在Flex中构建一个xml文档,但不知道如何(递归地)正确遍历这个n-tree。

更新

仅获取子节点,可以使用以下算法(伪代码)。但不知怎的,我不明白如何从这个创建xml。

 walkTree(group) {
        children = node.getChildren
        if(children != null) {
            for(int i=0; i<children.length; i++) {
                if(children[i].isGroup()) {
                    walkTree(group[i]);
                } else {
                        trace(child);
                }
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

首先,我建议:http://www.sephiroth.it/tutorials/flashPHP/E4X/

所以,基本上,你在寻找的东西看起来像是ActionScript 3中的E4X

答案 1 :(得分:0)

我的建议是让您的结构从一开始就是数据驱动,因此XML控制着屏幕的绘制。那么你将拥有XML并且不需要它。

但是,如果你真的想这样做,你需要遍历每个级别的所有子节点并添加一些描述子节点的节点。但是,如果你没有一个数据驱动的视图,我看不出这对你有什么好处(如果你这样做,而且它不是XML,你最好从数据端编写数据导出,不是观点方面)。