开发者

dragging components in flex

so I am trying to drag around some images in a canvas.

I am adding eventlisteners to the components and calling startDrag() and stopDrag() to pick them up and stuff:

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

The problem is that it is selecting the image at its (0,0) location and not where I initially click on it. So there's a sudden "jump" when I click on the image. It is not smooth.

I noticed that startDrag() has two default parameters, one of them is lockCenter and it is default to false. Maybe do I set it equal to true somehow? (I don't know how to pass arguments to my second parameter in addeventlistener)

Another question: if I want to add more conditions to it, like make a new function that uses component.startDrag(), how do I pass the component to this functi开发者_运维百科on while adding event listener to it at the same time? for example: I want to do:

component.addEventListener(MouseEvent.MOUSE_DOWN, some_other_function);

where some_other_function uses component.startDrag();

Thanks!


You should have your event listener call an event handler instead of start drag directly - that way you can pass arguments:

ie:

component.addEventListener(MouseEvent.MOUSE_DOWN, dragStartHandler);

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


You don't have to do all that. Use the DragManager. Here's a page to show you how:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜