Mechanical Events
jCanvas allows you to run a callback when you perform a layer-related action, such as adding a new layer or removing an existing layer. These events are referred to in jCanvas terminology as mechanical events, though they work like any other jCanvas event.
The add
event
The add
event fires when a layer is added (but before it is drawn).
$('canvas').drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, add: function (layer) { // code to run when layer is first added }});
The remove
event
The remove
event fires when a layer is removed using the removeLayer()
method (or indirectly via removeLayers()
or removeLayerGroup()
).
$('canvas') .drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, remove: function (layer) { // code to run when layer is removed } }) .removeLayer('box') .drawLayers();
The change
event
The change
event fires when a layer’s properties are changed using the setLayer()
method (or indirectly via setLayers()
or setLayerGroup()
).
$('canvas').drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, change: function (layer, props) { // code to run when layer properties change }});$('canvas').setLayer('box', { x: 200});
The move
event
The move
event fires when a layer is moved to a new position using the moveLayer()
method (or indirectly via moveLayers()
or moveLayerGroup()
).
$('canvas').drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, move: function (layer) { // code to run when layer's order on canvas is changed }});$('canvas').moveLayer('box', 2);
Animation events
jCanvas provides the following events pertaining to animation: animatestart
, animate
, and animateend
.
$('canvas').drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, animatestart: function (layer) { // code to run when animation starts }, animate: function (layer, fx) { // code to run on each frame of the animation // fx contains animation-related properties }, animateend: function (layer) { // code to run when animation ends }});$('canvas').animateLayer('box', { x: 200, y: 300});
jCanvas also supports a stop
event, which fires when the animation is stopped using the stoplayer()
method (or indirectly via stopLayerGroup()
).
$('canvas').drawRect({ layer: true, name: 'box', fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, stop: function (layer) { // code to run when animation is stopped }});$('canvas').stopLayer('box');
Similarly, jCanvas supports a delay
event, which fires when the delayLayer()
method is called (or indirectly via delayLayerGroup()
).
$('canvas').drawRect({ fillStyle: '#6c0', x: 100, y: 100, width: 100, height: 100, delay: function (layer) { // code to run when animation is delayed }});$('canvas').delayLayer('box', 300);