我有一个带有dragMoveEnabled = true的flex树。我想知道,当一个项目被拖入自己或它的孩子。我想在树的onDragOver处理程序中使用DragManager.showFeedback(DragManager.NONE),但无法找到如何使其工作。我正在使用嵌套对象的ArrayCollection作为树的dataSource。
答案 0 :(得分:1)
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是我使用的值对象。
答案 1 :(得分:0)
if(event.currentTarget == event.target){
//item is being dropped on itself
}