所以我试图在画布中拖动一些图像。
我将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();
谢谢!
答案 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