Tag Archive for Flex

Flex中的拖拽

一.通DragManager管理拖拽事件

// 处理拖拽中的数据传递
var dragSource: DragSource = new DragSource();
dragSource.addData(event.currentTarget, "pageItems");

// 自定义拖拽图标
var dragImage : DragAndResizeLine = new DragAndResizeLine();
dragImage.width = IUIComponent(event.currentTarget).width;
dragImage.height = 14;

// 拖拽
DragManager.doDrag(event.currentTarget, dragSource, MouseEvent(event), dragImage);

====================
DragManager.doDrag(
dragInitiator:派发拖拽事件的目标对象
dragSource:拖拽中的数据源,用来传递数据。通过定义DragSource对象来设置数据源,该对象的方法 addData(obj, “name”) 可以添加数据。然后使用dataForFormat(“name”) 来获取数据,使用前用hasFormat(“name) 来判断是否存在该对象。
mouseEvent:鼠标事件对象,包含了拖拽事件开始时的鼠标信息
dragImage:可选,一个可视化的Flex 组件,用来代替目标对象的显示,将在拖拽过程中一直跟随鼠标。如果没有指定,默认会使用一个矩形来代替。
xOffset:x坐标位移量,默认0,表示dragImage 和 目标对象左端的距离
yOffset:y坐标位移量,默认0,表示dragImage 和 目标对象顶端的距离
imageAlpha:默认0.5,表示 dragImage 的透明度,0~1
allowMove:是否允许移动,默认true,实际上这个属性不影响动作
);
====================

二.拖拽操作中最少有两个对象:被拖动的对象、接收方的对象。
  被拖动的对象,可设置的事件有mouseDown:鼠标按下。mouseMove:鼠标移动。dragComplete:鼠标释放(判断是否拖放成功)。
  接收方的对象,可设置的事件为dragEnter:被拖动对象移动到接收范围时。dragOver:鼠标移动到接收方上。dragDrop:鼠标在接收方上松开。dragExit:被拖动对象被拖离接收方范围。
private function dragEnterHandler(event: DragEvent) : void {
// 判断当前拖入的对象,是否是想要接收的对象
if (event.dragSource.hasFormat("pageItems")) {
// 同意接收当前拖入的对象
DragManager.acceptDragDrop(event.currentTarget);
}
}

TextLayout

相关的网站