在flex中拖动组件

时间:2010-04-03 23:15:47

标签: flex

所以我试图在画布中拖动一些图像。

我将eventlisteners添加到组件中并调用startDrag()和stopDrag()来拾取它们并填充:

component.addEventListener(MouseEvent.MOUSE_DOWN,component.startDrag)

问题在于它在(0,0)位置选择图像而不是我最初点击它的位置。因此,当我点击图像时会出现突然的“跳跃”。这不顺利。

我注意到startDrag()有两个默认参数,其中一个是lockCenter,默认为false。也许我会以某种方式将其设置为真? (我不知道如何将参数传递给addeventlistener中的第二个参数)

另一个问题:如果我想为它添加更多条件,比如创建一个使用component.startDrag()的新函数,如何在向它添加事件监听器的同时将组件传递给该函数? 例如:我想做:

component.addEventListener(MouseEvent.MOUSE_DOWN,some_other_function);

其中some_other_function使用component.startDrag();

谢谢!

2 个答案:

答案 0 :(得分:1)

你应该让你的事件监听器调用事件处理程序而不是直接开始拖动 - 这样你就可以传递参数:

即:

component.addEventListener(MouseEvent.MOUSE_DOWN, dragStartHandler);

public function dragStartHandler(event:MouseEvent):void{
   component.startDrag(true);
}

答案 1 :(得分:0)

你不必完成所有这些。使用DragManager。这是一个向您展示如何:

的页面

http://www.switchonthecode.com/tutorials/simple-flex-drag-and-drop