Определение состояния dropIndicator для компонента дерева в Flex 3 - PullRequest
2 голосов
/ 24 марта 2011

У меня есть пользовательский класс, который расширяет компонент Tree, поэтому я могу добавить некоторую логику в функцию перетаскивания и запретить удаление папок внутри папок.

В функции dragOver я использую:

var currNodeOver:TreeItemRenderer = TreeItemRenderer(indexToItemRenderer(calculateDropIndex(event)));

для определения цели сброса и установки:

DragManager.showFeedback(DragManager.NONE); 

соответственно.

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

Таким образом, если у меня есть открытая папка с узлами, за которой следует другая папка, и я перетаскиваю папку между ними, она может находиться в 2 разных местах: внизу открытой папки ИЛИ над следующей папкой в ​​корневом каталоге. . единственным указанием для пользователя является индикатор сброса, но в функции dragOver dropIndex остается одинаковым для любой ситуации.

Как мне обнаружить между этими двумя точками?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

Вы должны создать свой собственный индикатор и показывать его в соответствующем состоянии.посмотрите эти примеры и их объяснения:

0 голосов
/ 30 марта 2011

CurrentTarget события перетаскивания должен быть TreeItemRenderer или компонентом Tree в зависимости от того, где находится перетаскивание.DragEvent расширяет MouseEvent и содержит текущую x, y позицию указателя мыши.Вы можете сравнить координаты мыши с координатами средства визуализации элементов, чтобы увидеть, где на устройстве визуализации элементов в данный момент находится мышь.Если он находится в центре, покажите обратную связь для удаления в папке, если она находится в пределах x пикселей от верха или низа средства визуализации, тогда покажите обратную связь для удаления на том же уровне, что и папка.

...