Mirror Engine
V5
How To
Mirror Engine Logo

Mirror Engine API


Mirror Engine API / ElementDragHelper

Class: ElementDragHelper

Helper class that makes it easy to create Elements that can be dragged by the mouse or touch.

Extends

Constructors

new ElementDragHelper()

new ElementDragHelper(element: ElementComponent, axis?: string): ElementDragHelper

Create a new ElementDragHelper instance.

Parameters

element

ElementComponent

The Element that should become draggable.

axis?

string

Optional axis to constrain to, either 'x', 'y' or null.

Returns

ElementDragHelper

Overrides

EventHandler.constructor

Methods

fire()

fire(
   name: string,
   arg1?: any,
   arg2?: any,
   arg3?: any,
   arg4?: any,
   arg5?: any,
   arg6?: any,
   arg7?: any,
   arg8?: any): EventHandler

Fire an event, all additional arguments are passed on to the event listener.

Parameters

name

string

Name of event to fire.

arg1?

any

First argument that is passed to the event handler.

arg2?

any

Second argument that is passed to the event handler.

arg3?

any

Third argument that is passed to the event handler.

arg4?

any

Fourth argument that is passed to the event handler.

arg5?

any

Fifth argument that is passed to the event handler.

arg6?

any

Sixth argument that is passed to the event handler.

arg7?

any

Seventh argument that is passed to the event handler.

arg8?

any

Eighth argument that is passed to the event handler.

Returns

EventHandler

Self for chaining.

Example

obj.fire('test', 'This is the message')

Inherited from

EventHandler.fire


hasEvent()

hasEvent(name: string): boolean

Test if there are any handlers bound to an event name.

Parameters

name

string

The name of the event to test.

Returns

boolean

True if the object has handlers bound to the specified event name.

Example

obj.on('test', () => {}) // bind an event to 'test'
obj.hasEvent('test') // returns true
obj.hasEvent('hello') // returns false

Inherited from

EventHandler.hasEvent


off()

off(
   name?: string,
   callback?: HandleEventCallback,
   scope?: any): EventHandler

Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

Parameters

name?

string

Name of the event to unbind.

callback?

HandleEventCallback

Function to be unbound.

scope?

any

Scope that was used as the this when the event is fired.

Returns

EventHandler

Self for chaining.

Example

const handler = () => {}
obj.on('test', handler)

obj.off() // Removes all events
obj.off('test') // Removes all events called 'test'
obj.off('test', handler) // Removes all handler functions, called 'test'
obj.off('test', handler, this) // Removes all handler functions, called 'test' with scope this

Inherited from

EventHandler.off


on()

on(
   name: string,
   callback: HandleEventCallback,
   scope?: any): EventHandle

Attach an event handler to an event.

Parameters

name

string

Name of the event to bind the callback to.

callback

HandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scope?

any = ...

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle

Can be used for removing event in the future.

Examples

obj.on('test', (a, b) => {
  console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
const evt = obj.on('test', (a, b) => {
  console.log(a + b)
})
// some time later
evt.off()

Inherited from

EventHandler.on


once()

once(
   name: string,
   callback: HandleEventCallback,
   scope?: any): EventHandle

Attach an event handler to an event. This handler will be removed after being fired once.

Parameters

name

string

Name of the event to bind the callback to.

callback

HandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scope?

any = ...

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle

  • can be used for removing event in the future.

Example

obj.once('test', (a, b) => {
  console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
obj.fire('test', 1, 2) // not going to get handled

Inherited from

EventHandler.once

Events

EVENT_DRAGEND

static EVENT_DRAGEND: string = 'drag:end';

Fired when the current new drag operation ends.

Example

elementDragHelper.on('drag:end', () => {
  console.log('Drag ended')
})

EVENT_DRAGMOVE

static EVENT_DRAGMOVE: string = 'drag:move';

Fired whenever the position of the dragged element changes. The handler is passed the current Vec3 position of the dragged element.

Example

elementDragHelper.on('drag:move', (position) => {
  console.log(`Dragged element position is ${'${position}'}`)
})

EVENT_DRAGSTART

static EVENT_DRAGSTART: string = 'drag:start';

Fired when a new drag operation starts.

Example

elementDragHelper.on('drag:start', () => {
  console.log('Drag started')
})
Mirror Engine Logo