Как реализовать перетаскивание для удаления во Flex? - PullRequest
0 голосов
/ 04 марта 2010

У меня есть компонент List, из которого я хотел бы иметь возможность удалять элементы с помощью перетаскивания, но без определенной цели. Если вы используете Mac, то поведение, которое я ищу, похоже на то, что использует Dock; когда вы перетаскиваете что-либо за пределы элемента управления, оно должно получить значок, указывающий, что оно будет удалено (OSX использует облако или что-то еще?), а затем, если вы отпустите его, оно будет удалено из списка.

Как я могу это сделать?

(Если мне нужно дать более четкое описание, пожалуйста, прокомментируйте; я заполню все, что смогу)

Ответы [ 2 ]

1 голос
/ 08 марта 2010

По моему опыту с перетаскиванием во Flex вы не можете просто перетащить что-то и обработать это. Событие dragOut (к сожалению) отсутствует, так что это поставило бы вас перед задачей написания слушателей dragOver и dragDrop для всех контейнеров, окружающих dragInitiator, и соответствующей обработки процесса.

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

Надеюсь, это поможет.

0 голосов
/ 04 марта 2010

Не имея опыта работы с Flex, все, что я могу предложить, это некоторый псевдо-код, который напоминает, как я реализовал подобный эффект в JavaScript, но, надеюсь, он поможет вам начать работу.

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

...