Dong
Dong

Reputation: 3

Actionscript MouseScroll / MouseDrag

Is there a "MouseScroll" or "MouseDrag" Event in Actionscript, I could not find something properly. I have this:

resultPumpVolCalcBoxQv.addEventListener(MouseEvent.CLICK, getPumpVolumenQv);
resultPumpVolCalcBoxQn.addEventListener(MouseEvent.CLICK, getPumpVolumenn);
resultPumpVolCalcBoxQvng.addEventListener(MouseEvent.CLICK, getPumpVolumenng);

function getPumpVolumenQv(e:MouseEvent):void {

     pumpeVolQv = Number(pumpeVolumenstromTextFieldqv.text);
     pumpeVolN  = Number(pumpeVolumenstromTextFieldn.text);
     pumpeVolNg = Number(pumpeVolumenstromTextFieldng.text);
     if(pumpeVolumenstromTextFieldng.text != null && pumpeVolumenstromTextFieldn.text != null) {        
        totalqv = (pumpeVolNg * pumpeVolN)/1000
        pumpeVolumenstromTextFieldqv.text = " " + totalqv;
     } else {
         //
     }   
}

Currently this works with a click event. I want to make this calculation happen if I drag something like a scrollbar.

Upvotes: 0

Views: 38

Answers (2)

Gurtej Singh
Gurtej Singh

Reputation: 3234

You will have to use the Mouse up and Mouse down events to achieve this. However, be careful to add and then remove the event listeners when they are not needed. This way you will ensure that the event listeners are properly removed and not added multiple times causing memory issues.

private var yourObject:MovieClip;

private function addDragListeners():void
{
    yourObject.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true);
    yourObject.addEventListener(MouseEvent.MOUSE_DOWN, onMouseUp, false, 0, true);
}

private function removeDragListeners():void
{
    yourObject.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
    yourObject.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseUp);
}

protected function onMouseDown(e:MouseEvent):void
{
    yourObject.startDrag();
}

protected function onMouseUp(e:MouseEvent):void
{
    yourObject.stopDrag();
}

You can look into the startDrag() method in case you need to add some bounds for the dragging.

Upvotes: 1

Hwang
Hwang

Reputation: 502

You have to combine the usage of MouseDown and MouseOut to create a drag outcome

obj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
obj.addEventListener(MouseEvent.MOUSE_UP, mouseUp);

function mouseDown($e:MouseEvent):void{
MovieClip($e.currentTarget).startDrag();
}

function mouseUp($e:MouseEvent):void{
MovieClip($.currentTarget).stopDrag();
}

If you want it to constrain to an X or Y position, add a rectangular box paraments in the startDrag() functions

Upvotes: 1

Related Questions