Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex树控件拖放。项目位置_Apache Flex_Actionscript 3_Drag And Drop_Tree - Fatal编程技术网

Apache flex Flex树控件拖放。项目位置

Apache flex Flex树控件拖放。项目位置,apache-flex,actionscript-3,drag-and-drop,tree,Apache Flex,Actionscript 3,Drag And Drop,Tree,正面临树控件拖放的困难.. 假设启用了拖放功能的树。 我想知道哪个节点(id)放在哪个节点内 1] 如果我将“Cat1”节点拖动到“Cat3”内,我想识别 “cat1”和“cat3”的兄弟姐妹ID 2] 一般来说,我想知道当前元素的ID随 它的新父项和新位置,并保存这些位置 3] 还有“cat4”,当移到“cat3”之外时,我想知道它的位置和它的兄弟id <mx:XML id="treeDP"> <node label="Categories">

正面临树控件拖放的困难..
假设启用了拖放功能的树。 我想知道哪个节点(id)放在哪个节点内

1] 如果我将“Cat1”节点拖动到“Cat3”内,我想识别 “cat1”和“cat3”的兄弟姐妹ID

2] 一般来说,我想知道当前元素的ID随
它的新父项和新位置,并保存这些位置

3] 还有“cat4”,当移到“cat3”之外时,我想知道它的位置和它的兄弟id

<mx:XML id="treeDP">
        <node label="Categories">
          <node label="Cat1" id="1" isBranch="true"/>            
          <node label="Cat2" id="2" isBranch="true"/>

           <node label="Cat3" id="3" isBranch="true">
             <node label="Cat4" id="4" isBranch="true"/>
         </node>          
        </node>
</mx:XML>

    <mx:Tree id="compBalanced" 
        width="420" height="439" 
        dataProvider="{treeDP}" 
        showRoot="false"
        labelField="@label"
        doubleClickEnabled="true"
        dragEnabled="true" 
        dropEnabled="true" 
        dragDrop="onDragDrop(event)"            
            />

通过在树上收听dragComplete,临时解决了问题
dragComplete=“handleDragComplete(事件)

当拖动完成时,我从树中获取更改的数据提供程序,然后递归地 在已更改的数据提供程序中搜索“拖动项”(“id”+“标签”),以查找其在树中的位置,即删除所选节点(父节点)的节点的“id”。 并启动“保存到数据库”api

任何人都有更好的选择。 请回复


谢谢:)

通过收听树上的dragComplete临时解决了问题
dragComplete=“handleDragComplete(事件)

当拖动完成时,我从树中获取更改的数据提供程序,然后递归地 在已更改的数据提供程序中搜索“拖动项”(“id”+“标签”),以查找其在树中的位置,即删除所选节点(父节点)的节点的“id”。 并启动“保存到数据库”api

任何人都有更好的选择。 请回复


谢谢:)

我遇到了这样的问题,当时我不得不检查接收孩子的节点。 为了获得节点父节点,我使用了以下方法:

public function getObjectTarget() : Object {
   var dropData : Object = tree.mx_internal::_dropData as Object;
   if (dropData.parent != null) {
      return dropData.parent;
   } else {
          // if there is not parent (root of the tree), I take the root directly
      var renderer : IListItemRenderer = tree.indexToItemRenderer(0);
      return renderer.data;
   }

希望这能帮助一些人

当我不得不检查接收孩子的节点时,我遇到了这样的问题。 为了获得节点父节点,我使用了以下方法:

public function getObjectTarget() : Object {
   var dropData : Object = tree.mx_internal::_dropData as Object;
   if (dropData.parent != null) {
      return dropData.parent;
   } else {
          // if there is not parent (root of the tree), I take the root directly
      var renderer : IListItemRenderer = tree.indexToItemRenderer(0);
      return renderer.data;
   }

希望这会对某些人有所帮助。DragEvent包含一个dragSource元素。它包含要拖动的元素。 如果是树,则为“treeItems”类型。
var items:Array=event.dragSource.datForFormat(“treeItems”)作为数组
拖动树节点时,只有一个元素,
items[0]
,可以轻松地定位在(更改的)树中


但是,似乎无法显示如果在当前拖动位置释放该项,该项将插入何处(例如,防止将节点拖动到特定位置)。“calculateDropIndex()”函数仅计算节点所在虚拟矩阵中的行(而不是列/缩进)。这完全取决于y坐标,并且可以是远远大于节点总数的索引,而例如,在最后一个节点后的行中,同一索引可以将元素作为最后一个子节点的子节点放置,与最后一个子节点平行或与根节点平行。我还没有找到一个简单的方法来判断(除了复制树dragDrop处理程序中的代码)

DragEvent包含一个dragSource元素。它包含要拖动的元素。 如果是树,则为“treeItems”类型。
var items:Array=event.dragSource.datForFormat(“treeItems”)作为数组
拖动树节点时,只有一个元素,
items[0]
,可以轻松地定位在(更改的)树中


但是,似乎无法显示如果在当前拖动位置释放该项,该项将插入何处(例如,防止将节点拖动到特定位置)。“calculateDropIndex()”函数仅计算节点所在虚拟矩阵中的行(而不是列/缩进)。这完全取决于y坐标,并且可以是远远大于节点总数的索引,而例如,在最后一个节点后的行中,同一索引可以将元素作为最后一个子节点的子节点放置,与最后一个子节点平行或与根节点平行。我还没有找到一个简单的方法来判断(除了复制树dragDrop处理程序中的代码)

我尝试在drapDrop()中查找位置,但无法在树中找到正确的位置。calculateDropIndex在不同的嵌套级别上返回不同的位置。我尝试在drapDrop()中查找位置但我无法得到树的正确位置。calculateDropIndex返回不同嵌套级别上的不同位置。