Apache flex 在Flex中从datagrid拖放到uicomponent
我试图从数据网格中拖出一个项目,并将其放到UIComponet上。基本上,我只想让UIComponent知道有东西被放到它上面,并允许它访问被删除项的数据 我原以为只要听掉事件就可以了,但似乎不行 我找到了很多关于从一个IList拖动到另一个IList的文档,但是没有关于这个的文档Apache flex 在Flex中从datagrid拖放到uicomponent,apache-flex,drag-and-drop,Apache Flex,Drag And Drop,我试图从数据网格中拖出一个项目,并将其放到UIComponet上。基本上,我只想让UIComponent知道有东西被放到它上面,并允许它访问被删除项的数据 我原以为只要听掉事件就可以了,但似乎不行 我找到了很多关于从一个IList拖动到另一个IList的文档,但是没有关于这个的文档 <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init(event)" dragDr
<mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="init(event)" dragDrop="itemDropped(event)">
您还需要处理
拖拽\u进入
:
<s:TextInput id="input" dragEnter="input_dragEnterHandler(event)"
dragDrop="input_dragDropHandler(event)"/>
很酷,UIComponent现在可以接受滴落。然而,我认为我将不得不抛弃dragManager,并想出我自己的解决方案。原因是我想使用自定义的拖动代理图像,这需要手动设置拖动管理器。在dodrag方法中设置drag inititator时,我只能传入datagrid,而不能传入单击的datagrid行项目,这会弄乱代理图像的位置。它总是连接在dg的x,y处,而不是它自己的x,y处。擦伤了,我用dodrag offest进行了切割,使其定位正确。
private function input_dragEnterHandler(event:DragEvent):void
{
var data:Array = event.dragSource.dataForFormat("items") as Array;
if (data && data.length > 0)
DragManager.acceptDragDrop(input);
}
private function input_dragDropHandler(event:DragEvent):void
{
var data:Array = event.dragSource.dataForFormat("items") as Array;
input.text = data[0].name;
}