Class: abstract
Composite
Extends
Implements
Constructors
new Composite()
new Composite(
options
):Composite
Base Drawable object for creating custom nodes ("composites") composed of primitive nodes.
Parameters
• options: CompositeOptions
= {}
Returns
Overrides
Source
Properties
_alpha
_alpha:
number
=1.0
Inherited from
Source
_anchorPoint
private
_anchorPoint:Point
Source
_draggable
protected
_draggable:boolean
=false
Inherited from
Source
_game?
optional
_game:Game
Inherited from
Source
_hidden
protected
_hidden:boolean
=false
Inherited from
Source
_isUserInteractionEnabled
protected
_isUserInteractionEnabled:boolean
=false
Inherited from
M2Node
._isUserInteractionEnabled
Source
_position
_position:
Point
Inherited from
Source
_scale
_scale:
number
=1.0
Inherited from
Source
_size
protected
_size:Size
Inherited from
Source
_zPosition
private
_zPosition:number
=0
Source
_zRotation
_zRotation:
number
=0
Inherited from
Source
absoluteAlpha
absoluteAlpha:
number
=1.0
Inherited from
Source
absoluteAlphaChange
absoluteAlphaChange:
number
=0
Inherited from
Source
absolutePosition
absolutePosition:
Point
Inherited from
Source
absoluteScale
absoluteScale:
number
=1.0
Inherited from
Source
actions
actions:
Action
[]
Inherited from
Source
children
children:
M2Node
[]
Inherited from
Source
compositeType
compositeType:
string
="<compositeType>"
Source
constructionIso8601TimeStamp
constructionIso8601TimeStamp:
string
Inherited from
M2Node
.constructionIso8601TimeStamp
Source
constructionSequence
constructionSequence:
number
Inherited from
Source
constructionTimeStamp
constructionTimeStamp:
number
Inherited from
Source
dragging
dragging:
boolean
=false
Is the node in a dragging state?
Inherited from
Source
draggingLastPointerOffset
draggingLastPointerOffset:
Point
What was the previous pointer offset when the node was in a dragging state?
Inherited from
M2Node
.draggingLastPointerOffset
Source
eventListeners
eventListeners:
M2NodeEventListener
<M2NodeEvent
>[]
Inherited from
Source
isDrawable
isDrawable:
boolean
=true
Overrides
Source
isShape
isShape:
boolean
=false
Inherited from
Source
isText
isText:
boolean
=false
Inherited from
Source
layout
layout:
Layout
={}
FOR INTERNAL USE ONLY
Inherited from
Source
loopMessages
loopMessages:
Set
<string
>
Inherited from
Source
name
name:
string
Name of the node. Only needed if the node will be referred to by name in a later function
Inherited from
Source
needsInitialization
needsInitialization:
boolean
=true
Inherited from
Source
nodeEvents
Inherited from
Source
options
options:
M2NodeOptions
Inherited from
Source
parent?
optional
parent:M2Node
Inherited from
Source
pressed
pressed:
boolean
=false
Is the node in a pressed state? E.g., did the user put the pointer down on the node and not yet release it?
Inherited from
Source
pressedAndWithinHitArea
pressedAndWithinHitArea:
boolean
=false
Is the node in a pressed state AND is the pointer within the node's hit area? For example, a user may put the pointer down on the node, but then move the pointer, while still down, beyond the node's hit area. In this case, pressed = true, but pressedAndWithinHitArea = false.
Inherited from
M2Node
.pressedAndWithinHitArea
Source
pressedInitialPointerOffset
pressedInitialPointerOffset:
Point
When the node initially enters the pressed state, what is the pointer offset? (offset from the canvas's origin to the pointer position). We save this because it will be needed if this press then led to a drag.
Inherited from
M2Node
.pressedInitialPointerOffset
Source
queuedAction?
optional
queuedAction:Action
Inherited from
Source
type
readonly
type:Composite
=M2NodeType.Composite
Overrides
Source
userData
userData:
any
={}
Inherited from
Source
uuid
Internal
readonly
uuid:string
Unique identifier (UUID). Will be generated automatically. For m2c2kit library use only
Inherited from
Source
withinHitArea
withinHitArea:
boolean
=false
Inherited from
Source
Accessors
alpha
get
alpha():number
Opacity of the node. 0 is fully transparent, 1 is fully opaque. Default is 1.0. Alpha has multiplicative inheritance. For example, if the node's parent is alpha .5 and this node's is alpha .4, then the node will appear with alpha .2.
set
alpha(alpha
):void
Opacity of the node. 0 is fully transparent, 1 is fully opaque. Default is 1.0. Alpha has multiplicative inheritance. For example, if the node's parent is alpha .5 and this node's is alpha .4, then the node will appear with alpha .2.
Parameters
• alpha: number
Returns
number
Source
ancestors
get
ancestors():M2Node
[]
Returns all ancestor nodes, not including the node itself.
Returns
M2Node
[]
Source
anchorPoint
get
anchorPoint():Point
set
anchorPoint(anchorPoint
):void
Parameters
• anchorPoint: Point
Returns
Source
canvasKit
get
canvasKit():CanvasKit
Gets the scene that contains this node by searching up the ancestor tree recursively. Throws exception if node is not part of a scene.
Returns
CanvasKit
Scene that contains this node
Source
completeNodeOptions
get
protected
completeNodeOptions():M2NodeOptions
Returns
Source
descendants
get
descendants():M2Node
[]
Returns all descendant nodes.
Remarks
Descendants are children and children of children, recursively.
Returns
M2Node
[]
Source
draggable
get
draggable():boolean
Can the node be dragged?
set
draggable(draggable
):void
Can the node be dragged?
Parameters
• draggable: boolean
Returns
boolean
Source
game
get
game():Game
The game which this node is a part of.
Remarks
Throws error if node is not part of the game object.
Returns
Source
hidden
get
hidden():boolean
Is the node, and its children, hidden? (not displayed). Default is false
set
hidden(hidden
):void
Is the node, and its children, hidden? (not displayed). Default is false
Parameters
• hidden: boolean
Returns
boolean
Source
isUserInteractionEnabled
get
isUserInteractionEnabled():boolean
Does the node respond to user events, such as taps? Default is false
set
isUserInteractionEnabled(isUserInteractionEnabled
):void
Does the node respond to user events, such as taps? Default is false
Parameters
• isUserInteractionEnabled: boolean
Returns
boolean
Source
parentSceneAsNode
get
parentSceneAsNode():M2Node
Returns
Source
position
get
position():Point
Position of the node within its parent coordinate system. Default is (0, 0)
set
position(position
):void
Position of the node within its parent coordinate system. Default is (0, 0)
Parameters
• position: Point
Returns
Source
scale
get
scale():number
Scale of the node. Default is 1.0
set
scale(scale
):void
Scale of the node. Default is 1.0
Parameters
• scale: number
Returns
number
Source
size
get
size():Size
set
size(size
):void
Parameters
• size: Size
Returns
Source
suppressEvents
get
suppressEvents():boolean
Should the node not emit events to the EventStore? Default is false.
Remarks
This property is for use by authors of Composite
nodes. It is not intended for general use.
set
suppressEvents(value
):void
Should the node not emit events to the EventStore? Default is false.
Remarks
This property is for use by authors of Composite
nodes. It is not intended for general use.
Parameters
• value: boolean
Returns
boolean
Source
zPosition
get
zPosition():number
set
zPosition(zPosition
):void
Parameters
• zPosition: number
Returns
number
Source
zRotation
get
zRotation():number
Rotation of the node around the Z axis. Unit is radians. Default is 0 (no rotation). zRotation has inheritance. In addition to this node's zRotation, all ancestors' zRotations will be applied.
set
zRotation(zRotation
):void
Rotation of the node around the Z axis. Unit is radians. Default is 0 (no rotation). zRotation has inheritance. In addition to this node's zRotation, all ancestors' zRotations will be applied.
Parameters
• zRotation: number
Returns
number
Source
Methods
addChild()
addChild(
child
):void
Adds a child to this parent node. Throws exception if the child's name is not unique with respect to other children of this parent, or if the child has already been added to another parent.
Parameters
• child: M2Node
The child node to add
Returns
void
Inherited from
Source
addEventListener()
addEventListener<
T
>(type
,callback
,callbackOptions
?):void
Type parameters
• T extends M2NodeEvent
Parameters
• type: string
• callback
• callbackOptions?: CallbackOptions
Returns
void
Inherited from
Source
descendant()
descendant<
T
>(name
):T
Searches all descendants by name and returns first matching node.
Type parameters
• T extends M2Node
Parameters
• name: string
Name of the descendant node to return
Returns
T
Inherited from
Remarks
Descendants are children and children of children, recursively. Throws exception if no descendant with the given name is found.
Source
dispose()
Internal
dispose():
void
Frees up resources allocated by the Drawable M2Node.
For m2c2kit library use only
Returns
void
Implementation of
Remarks
This will be done automatically by the m2c2kit library; the end-user must not call this.
Source
draw()
draw(
canvas
):void
Parameters
• canvas: Canvas
Returns
void
Implementation of
Source
drawChildren()
drawChildren(
canvas
):void
Draws each child node that is Drawable and is not hidden, by zPosition order (highest zPosition on top).
Parameters
• canvas: Canvas
CanvasKit canvas
Returns
void
Inherited from
Source
duplicate()
abstract
duplicate(newName
?):M2Node
Duplicates a node using deep copy.
Parameters
• newName?: string
optional name of the new, duplicated node. If not provided, name will be the new uuid
Returns
Inherited from
Remarks
This is a deep recursive clone (node and children). The uuid property of all duplicated nodes will be newly created, because uuid must be unique.
Source
getDrawableOptions()
protected
getDrawableOptions():DrawableOptions
Returns
Inherited from
Source
getNodeOptions()
protected
getNodeOptions():M2NodeOptions
Returns
Inherited from
Source
getTextOptions()
protected
getTextOptions():TextOptions
Returns
Inherited from
Source
handleCompositeEvent()
handleCompositeEvent(
event
):void
Event handler for custom events a Composite
may generate.
Parameters
• event: CompositeEvent
event to handle
Returns
void
Remarks
If the Composite
generates custom events, this method is
necessary for the Composite
to work in replay mode.
Source
initialize()
initialize():
void
Returns
void
Overrides
Source
involvedInActionAffectingAppearance()
involvedInActionAffectingAppearance():
boolean
Determines if this node or ancestor is part of an active action that affects it appearance.
Returns
boolean
true if part of active action affecting appearance
Inherited from
M2Node
.involvedInActionAffectingAppearance
Remarks
This is used to determine if the node should be rendered with anti-aliasing or not. Anti-aliasing on some devices causes a new shader to be compiled during the action, which causes jank.
Source
involvedInSceneTransition()
involvedInSceneTransition():
boolean
Determines if the node is a transitioning Scene or a descendant of a transitioning Scene.
Returns
boolean
true if transitioning
Inherited from
M2Node
.involvedInSceneTransition
Source
onDrag()
onDrag(
callback
,options
?):void
Executes a callback when the user continues dragging a node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Source
onDragEnd()
onDragEnd(
callback
,options
?):void
Executes a callback when the user stop dragging a node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Source
onDragStart()
onDragStart(
callback
,options
?):void
Executes a callback when the user begins dragging a node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Source
onPointerDown()
onPointerDown(
callback
,options
?):void
Executes a callback when the pointer first is down on the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
PointerDown is a pointer down (mouse click or touches begin) within the bounds of the node. It occurs under the same conditions as TapDown.
Source
onPointerLeave()
onPointerLeave(
callback
,options
?):void
Executes a callback when the user moves the pointer (mouse or touches) outside the bounds of the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Source
onPointerMove()
onPointerMove(
callback
,options
?):void
Executes a callback when the user moves the pointer (mouse or touches) within the bounds of the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Source
onPointerUp()
onPointerUp(
callback
,options
?):void
Executes a callback when the user releases a press from the node within the bounds of the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
PointerUp is a pointer up (mouse click release or touches end) within the bounds of the node. It does not require that there was a previous PointerDown on the node.
Source
onTapDown()
onTapDown(
callback
,options
?):void
Executes a callback when the user presses down on the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
TapDown is a pointer down (mouse click or touches begin) within the bounds of the node.
Source
onTapLeave()
onTapLeave(
callback
,options
?):void
Executes a callback when the user moves the pointer (mouse, touches) beyond the bounds of the node while the pointer is down.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
TapLeave occurs when the pointer (mouse, touches) that has previously pressed the node moves beyond the bounds of the node before the press release.
Source
onTapUp()
onTapUp(
callback
,options
?):void
Executes a callback when the user releases a press, that has been fully within the node, from the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
TapUp is a pointer up (mouse click release or touches end) within the bounds of the node and the pointer, while down, has never moved beyond the bounds of the node.
Source
onTapUpAny()
onTapUpAny(
callback
,options
?):void
Executes a callback when the user releases a press from the node within the bounds of the node.
Parameters
• callback
function to execute
• options?: CallbackOptions
Returns
void
Inherited from
Remarks
TapUpAny is a pointer up (mouse click release or touches end) within the bounds of the node and the pointer, while down, is allowed to have been beyond the bounds of the node during the press before the release.
Source
removeAction()
removeAction(
key
):void
Remove an action from this node. If the action is running, it will be stopped.
Parameters
• key: string
key (string identifier) of the action to remove
Returns
void
Inherited from
Source
removeAllActions()
removeAllActions():
void
Remove all actions from this node. If actions are running, they will be stopped.
Returns
void
Inherited from
Source
removeAllChildren()
removeAllChildren():
void
Removes all children from the node.
Returns
void
Inherited from
Source
removeChild()
removeChild(
child
):void
Removes the specific child from this parent node. Throws exception if this parent does not contain the child.
Parameters
• child: M2Node
Returns
void
Inherited from
Source
removeChildren()
removeChildren(
children
):void
Removes the children from the parent. Throws error if the parent does not contain all of the children.
Parameters
• children: M2Node
[]
An array of children to remove from the parent node
Returns
void
Inherited from
Source
run()
run(
action
,key
?):void
Runs an action on this node.
Parameters
• action: Action
The action to run
• key?: string
key (string identifier) used to identify the action. Only needed if the action will be referred to later
Returns
void
Inherited from
Remarks
If the node is part of an active scene, the action runs immediately. Otherwise, the action will run when the node's scene becomes active. Calling run() multiple times on a node will add to existing actions, not replace them.
Source
saveEvent()
protected
saveEvent(event
):void
Saves the node's event.
Parameters
event to save
Returns
void
Inherited from
Remarks
If the game event store is not available, the event is saved
within the node's nodeEvents
event array. It will be added to the game
event store when the node is added to the game.
Source
saveNodeNewEvent()
protected
saveNodeNewEvent():void
Save the node's construction event in the event store.
Returns
void
Inherited from
Source
savePropertyChangeEvent()
protected
savePropertyChangeEvent(property
,value
):void
Saves the node's property change event in the event store.
Parameters
• property: string
property name
• value: undefined
| null
| string
| number
| boolean
| object
property value
Returns
void
Inherited from
M2Node
.savePropertyChangeEvent
Source
toString()
toString():
string
Overrides toString() and returns a human-friendly description of the node.
Returns
string
Inherited from
Remarks
Inspiration from https://stackoverflow.com/a/35361695
Source
update()
update():
void
Returns
void
Overrides
Source
warmup()
abstract
warmup(canvas
):void
Parameters
• canvas: Canvas
Returns
void