Script>
26.
[CDATA[
27. import mx.controls.Button;
28. import mx.core.IUIComponent;
29. import mx.core.DragSource;
30. import mx.managers.DragManager;
31. import mx.events.DragEvent;
32. import mx.collections.ArrayCollection;
33. import mx.controls.Alert;
34. //拖动对象进入时
35. private function onDragOver( event:
DragEvent ) :
void
36. {
37. var dropTarget:
Tree = Tree(event.currentTarget);
38. var r:
int = dropTarget.calculateDropIndex(event);
39. lbl.text = '当前位置:
'+r.toString();//哪一个节点在鼠标下并给出相应信息
40. tree2.selectedIndex = r; //显示位置
41. var node:
XML = sourceTree.selectedItem as XML;
42. lbl2.text = '当前的拖动对象是:
'+node.@label;//拖动对象的名字
43. if( node.@label == "ActionScript" ) {
44. DragManager.showFeedback(DragManager.NONE);
45. return;
46. }
47. // 键盘控制
48. if (event.ctrlKey)
49. DragManager.showFeedback(DragManager.COPY);//复制
50. else if (event.shiftKey)
51. DragManager.showFeedback(DragManager.LINK);//剪切
52. else {
53. DragManager.showFeedback(DragManager.MOVE);//移动
54. }
55. }
56.
57. //拖动对象被抛出后
58. private function onDragDrop( event:
DragEvent ) :
void
59. {
60. // var ds:
DragSource = event.dragSource;
61. var dropTarget:
Tree = Tree(event.currentTarget);
62. // retrieve the data associated with the "items" format.
63. //var items:
Array = ds.dataForFormat("items") as Array;
64. var r:
int = tree2.calculateDropIndex(event);
65. tree2.selectedIndex = r;//当拖放完成后选定相应的节点
66. var node:
XML = tree2.selectedItem as XML;
67. var p:
*;
68. //tree2.dataDescriptor.hasChildren(node)判断有没有子节点,如果有就返回true
69. if( tree2.dataDescriptor.hasChildren(node) ) {
70. p = node;
71. r = 0;
72. trace('有子节点');
73. } else {
74. p = node.parent();
75. trace('没有子节点');
76. }
77.
78. // taking all of the items in the DragSouce, insert them into the
79. // tree using parent p.
80. // for(var i:
Number=0; i < items.length; i++) {
81. // var insert:
XML = ;
82. // insert.@label = items[i];
83. // insert.@type = "restaurant";
84. // tree2.dataDescriptor.addChildAt(p, insert, r+i);
85. // }
86. }
87.
88. private function onDragComplete(event:
DragEvent) :
void
89. {
90. trace('stop');
91. tree2.selectedIndex = 0;
92. }
93.
94. ]]>
95.