1.0.2 • Published 5 years ago

@curiousmedia/drag-manager v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

DragManager

A controller for handling "Click & Stick" or "Drag & Drop" functionality for PBS games

Callback functions when start drag and end drag of a DisplayObject happen

Also see examples folder:

import DragManager from '@curiousmedia/drag-manager';

// CreateJS Stage
const stage = new createjs.Stage(document.querySelector('canvas'));

// Stage update
createjs.Ticker.framerate = 60;
createjs.Ticker.addEventListener("tick", stage);

// Start callback function when we start the drag
function startDrag(event) {
    // Get the selected DisplayObject
    let target = event.selected;
    // OR
    let dragObject = dragManager.selected;

    // Do things with the selected DisplayObject
}

// End callback function when we end the drag
function endDrag(event) {
    // Get the selected DisplayObject
    let target = event.selected;
    // OR
    let dragObject = dragManager.selected;

    // Do things with the selected DisplayObject
}

// DragManager instance
const dragManager = new DragManager(stage, startDrag, endDrag);

// Create Display Object
let circle = new createjs.Shape();
circle.graphics.beginFill("DeepSkyBlue").drawCircle(0, 0, 50);
circle.x = 250;
circle.y = 250;
stage.addChild(circle);

// Add DisplayObjects to be controlled by the DragManager
dragManager.add(
    circle
);

// Turn on the events for the stage and DragManager's children
    dragManager.setActive(true);

new DragManager(stage, startCallback, endCallback)

Constructor

ParamTypeDescription
stageCreatejs.StageOur CreateJS Stage for events
startCallbackfunctionCallback function to trigger on the initial mousedown of a drag object
endCallbackfunctionCallback function to trigger when a drag or click/stick has finished

dragManager.setActive(active)

Set the events of this DragManager active or not

ParamTypeDescription
activeBoolTrue enables events / False disables events

dragManager.addEventsToObject(display)

Add the DragManager events to the DisplayObject

ParamTypeDescription
displaycreatejs.DisplayObjectDisplayObject to add events to

dragManager.removeEventsFromObject(display)

Remove the DragManager events from the DisplayObject

ParamTypeDescription
displaycreatejs.DisplayObjectDisplayObject to remove events from

dragManager.startDrag(display)

Manually start dragging an object

ParamTypeDescription
displaycreatejs.DisplayObjectThe DisplayObject to start dragging

dragManager.stopDrag()

Manually stop dragging our current object

dragManager.handleMouseDown(event)

Handle the mousedown event on the drag objects

ParamTypeDescription
eventEvent'mousedown' event

dragManager.handleStageMouseMove(event)

Handle the stagemousemove Event

ParamTypeDescription
eventEvent'stagemousemove' event

dragManager.handleStageMouseUp(event)

Handle the stagemouseup event Determine if we have dragged or if we need to set click and stick

ParamTypeDescription
eventEvent'stagemouseup' event

dragManager.distanceTo(a, b) ⇒ Number

Get the distance between two points/vectors/objects with an "x" and "y" property

Returns: Number - - The distance between the Vectors

ParamTypeDescription
aPoint/Object{x: 0, y: 0}
bPoint/Object{x: 0, y: 0}

dragManager.add(...displayObject)

Add an object to be managed by this DragManager

ParamTypeDescription
...displayObjectcreatejs.DisplayObjectone ore more createjs.DisplayObject

dragManager.remove(...displayObjects)

Remove an object from this DragManager

ParamTypeDescription
...displayObjectscreatejs.DisplayObjectone ore more createjs.DisplayObject

dragManager.clear()

Clear out all our drag objects and events from this DragManager