Как пройти / перестроить древовидную структуру UIComponent во Flex - PullRequest
0 голосов
/ 21 июля 2011

У меня есть какая-то группировка UIComponent, которая может выглядеть примерно так с классами «Группа» и «Элемент».

Группы могут иметь дочерние элементы, а дочерние элементы могут снова быть элементами или группами, в основном аналогично файловой системе или групповой функции str + g в нескольких графических программах.Самая простая форма группы - это группа с единственными дочерними элементами, которые также являются группами самого низкого уровня в дереве.

Редактировать: иерархия отображения уже существует, я пытаюсь сохранить ее в xml.

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

Я хочу перестроить эту структуру в xml-документе для сохранения.Я знаю, как создать XML-документ во Flex, но не знаю, как (рекурсивно) пройти по этому n-дереву правильно.

Обновление:

Для получения только дочерних узловМожно использовать следующий алгоритм (псевдокод).Но почему-то я не понимаю, как создать 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 голосов
/ 21 июля 2011

Мое предложение будет состоять в том, чтобы ваша структура с самого начала управлялась данными, поэтому XML контролирует рисование экрана.Тогда у вас будет XML, и вам не нужно будет его создавать.

Однако, если вы действительно хотите это сделать, вам нужно перебрать все дочерние элементы на каждом уровне и добавить какой-то узелэто описывает ребенка.Однако, если у вас нет представления, которое управляется данными, я не вижу, что это даст вам (и если вы это сделаете, и это не XML, вам лучше писать экспорт данных со стороны данных,не вид сбоку).

0 голосов
/ 21 июля 2011

Для начала я бы предложил следующее: http://www.sephiroth.it/tutorials/flashPHP/E4X/

Итак, то, что вы ищете, похоже на E4X в Actionscript 3

...