Flex 4: нисходящая вертикальная группа данных?

В настоящее время я работаю над приложением-трансформером, похожим на Photoshop, для работы с DisplayObjects в качестве слоев. У меня есть ArrayCollection, который служит моим поставщиком данных для моего списка значений, но проблема в том, что элементы отображаются в списке в порядке возрастания:

0 - Item 1
1 - Item 2
2 - Item 3
3 - Item 4

Поскольку это приложение диспетчера слоев, мне нужно, чтобы элементы отображались в порядке убывания, например:

3 - Item 4
2 - Item 3
1 - Item 2
0 - Item 1

Это связано с тем, что уровень 0 находится в нижней части стека, тогда как уровень 3 находится наверху, а не наоборот, как в настоящее время Flex отображает вещи.

Я знаю, что могу просто применить сортировку к моей коллекции ArrayCollection, чтобы элементы сортировались в обратном порядке, но это нарушает функциональность моего приложения. Мне было интересно, можно ли существенно изменить мой Spark List или DataGroup, чтобы элементы макета отображались в обратном порядке. Кто-нибудь знает короткий путь, с помощью которого это можно сделать?


person Naftuli Kay    schedule 12.08.2010    source источник


Ответы (1)


Вот подсказка (я все еще работаю над этим): я создал класс VerticalReversedLayout.as на основе VerticalLayout. В updateDisplayListVirtual и/или updateDisplayListReal есть for (var...), позиционирующий дочерние элементы по оси Y, просто инвертируйте направление цикла. Затем вы просто назначаете этот макет своему контейнеру данных (или списку в моем случае). Это работает отлично.

Если вы используете функцию dragMove, вам, возможно, придется изменить и calculateDropIndex.

person Kodiak    schedule 09.12.2010