我有一个接受drop的列表。当一个项目被删除时(DragEvent.DRAG_DROP)我需要收集被删除的数据,但是我没有在事件中找到任何可以帮助我这样做的事情,event.dragInitiator.selectedItems
会起作用但是会给我一个错误。
任何帮助都将不胜感激。
答案 0 :(得分:2)
数据应位于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
}
答案 1 :(得分:0)
您还可以收听更改的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);
}