【发布时间】:2011-02-02 11:08:10
【问题描述】:
我有一个带有 dragMoveEnabled = true 的弹性树。我想知道,当一个项目被拖入自身或它的孩子时。我想在树的 onDragOver 处理程序中使用 DragManager.showFeedback(DragManager.NONE),但不知道如何让它工作。我使用嵌套对象的 ArrayCollection 作为树的数据源。
【问题讨论】:
标签: apache-flex drag-and-drop tree
我有一个带有 dragMoveEnabled = true 的弹性树。我想知道,当一个项目被拖入自身或它的孩子时。我想在树的 onDragOver 处理程序中使用 DragManager.showFeedback(DragManager.NONE),但不知道如何让它工作。我使用嵌套对象的 ArrayCollection 作为树的数据源。
【问题讨论】:
标签: apache-flex drag-and-drop tree
private function onDragOver(event:DragEvent):void {
event.preventDefault();
event.currentTarget.hideDropFeedback(event);
var index:int = tree.calculateDropIndex(event);
tree.selectedIndex = index;
var subCategory:CategoryVO = CategoryVO(tree.selectedItem);
var currentCategory:CategoryVO = subCategory;
while(currentCategory.parent != 0) {
if (currentCategory.parent == _draggedItem.id) {
DragManager.showFeedback(DragManager.NONE);
return;
}
currentCategory = tree.getParentItem(currentCategory);
if (currentCategory == null) {
break;
}
DragManager.showFeedback(DragManager.MOVE);
tree.showDropFeedback(event);
}
我就是这样解决的。
_draggedItem 保存当前拖动的项目,在树的 onDragEnter 处理程序中设置。 CategoryVO 是我使用的值对象。
【讨论】:
你能做这样的事情吗:
if(event.currentTarget == event.target){
//item is being dropped on itself
}
【讨论】: