Гибкое обнаружение перетаскиваемых данных - PullRequest
1 голос
/ 06 августа 2011

У меня есть список, который принимает капли. Когда элемент отбрасывается (DragEvent.DRAG_DROP), мне нужно собрать отброшенные данные, однако я не нашел ничего в том случае, если бы мне это помогло, event.dragInitiator.selectedItems сработало бы, но выдает ошибку.

Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

Данные должны быть в event.dragSource. Вам нужно будет проверить правильный формат с помощью hasFormat() и получить его с помощью dataForFormat(). Вот документы для DragSource .

Код будет выглядеть примерно так (при условии, что это Flex 4):

// In dragDrop handler or dragComplete
if (event.dragSource.hasFormat("itemsByIndex"))
{
    var items:Vector.<Object> = event.dragSource.dataForFormat("itemsByIndex") as Vector.<Object>;
    // Do stuff with items
}
0 голосов
/ 18 октября 2013

Вы также можете прослушать изменение dataProvider.

list.dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, list_dataProvider_change);

...

protected function list_dataProvider_change(e :CollectionEvent) :void
{
    if (e.kind == CollectionEventKind.REMOVE)
        trace('list element removed from - index', e.location);
    else if (e.kind == CollectionEventKind.ADD)
        trace('list element added to - index', e.location);   
}
...