diff --git a/src/Node.js b/src/Node.js
index 538bcf3b..a3f6e7d6 100644
--- a/src/Node.js
+++ b/src/Node.js
@@ -119,7 +119,28 @@
* region for debugging purposes
* @returns {Kinetic.Node}
* @example
- * node.cache();
+ * // cache a shape with the x,y position of the bounding box at the center and
+ * // the width and height of the bounding box equal to the width and height of
+ * // the shape obtained from shape.width() and shape.height()
+ * image.cache();
+ *
+ * // cache a node and define the bounding box position and size
+ * node.cache({
+ * x: -30,
+ * y: -30,
+ * width: 100,
+ * height: 200
+ * });
+ *
+ * // cache a node and show a red border around the bounding box
+ * // for debugging purposes
+ * node.cache({
+ * x: -30,
+ * y: -30,
+ * width: 100,
+ * height: 200,
+ * showBorder: true
+ * });
*/
cache: function(config) {
var conf = config || {},
@@ -1504,10 +1525,13 @@
return no;
};
- // add getters setters
+
+
+ // =========================== add getters setters ===========================
+
Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node, 'position');
/**
- * get or set node position relative to parent
+ * get/set node position relative to parent
* @name position
* @method
* @memberof Kinetic.Node.prototype
@@ -1529,7 +1553,7 @@
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'x', 0);
/**
- * get or set x position
+ * get/set x position
* @name x
* @method
* @memberof Kinetic.Node.prototype
@@ -1546,7 +1570,7 @@
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'y', 0);
/**
- * get or set y position
+ * get/set y position
* @name y
* @method
* @memberof Kinetic.Node.prototype
@@ -1563,7 +1587,7 @@
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'opacity', 1);
/**
- * get or set opacity. Opacity values range from 0 to 1.
+ * get/set opacity. Opacity values range from 0 to 1.
* A node with an opacity of 0 is fully transparent, and a node
* with an opacity of 1 is fully opaque
* @name opacity
@@ -1583,7 +1607,7 @@
Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node, 'name');
/**
- * set name
+ * get/set name
* @name name
* @method
* @memberof Kinetic.Node.prototype
@@ -1601,7 +1625,7 @@
Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node, 'id');
/**
- * set id
+ * get/set id
* @name id
* @method
* @memberof Kinetic.Node.prototype
@@ -1618,11 +1642,11 @@
Kinetic.Factory.addRotationGetterSetter(Kinetic.Node, 'rotation', 0);
/**
- * get or set rotation in radians
+ * get/set rotation in radians
* @name rotation
* @method
* @memberof Kinetic.Node.prototype
- * @param {Number} theta
+ * @param {Number} rotation
* @returns {Number}
* @example
* // get rotation in radians
@@ -1633,11 +1657,11 @@
*/
/**
- * get or set rotation in degrees
+ * get/set rotation in degrees
* @name rotationDeg
* @method
* @memberof Kinetic.Node.prototype
- * @param {Number} deg
+ * @param {Number} rotationDeg
* @returns {Number}
* @example
* // get rotation in degrees
@@ -1650,7 +1674,7 @@
Kinetic.Factory.addPointGetterSetter(Kinetic.Node, 'scale', 1);
/**
- * get or set scale
+ * get/set scale
* @name scale
* @param {Object} scale
* @param {Number} scale.x
@@ -1670,7 +1694,7 @@
*/
/**
- * get or set scale x
+ * get/set scale x
* @name scaleX
* @param {Number} x
* @method
@@ -1685,7 +1709,7 @@
*/
/**
- * get or set scale y
+ * get/set scale y
* @name scaleY
* @param {Number} y
* @method
@@ -1702,62 +1726,53 @@
Kinetic.Factory.addPointGetterSetter(Kinetic.Node, 'skew', 0);
/**
- * set skew
- * @name setSkew
+ * get/set skew
+ * @name skew
* @param {Object} skew
* @param {Number} skew.x
* @param {Number} skew.y
* @method
* @memberof Kinetic.Node.prototype
- * @returns {Kinetic.Node}
+ * @returns {Object}
* @example
- * // set x and y
- * shape.setSkew({
+ * // get skew
+ * var skew = node.skew();
+ *
+ * // set skew
+ * node.skew({
* x: 20
* y: 10
* });
*/
/**
- * get skew
- * @name getSkew
- * @method
- * @memberof Kinetic.Node.prototype
- * @returns {Object}
- */
-
- /**
- * set skew x
- * @name setSkewX
+ * get/set skew x
+ * @name skewX
* @param {Number} x
* @method
* @memberof Kinetic.Node.prototype
- * @returns {Kinetic.Node}
- */
-
- /**
- * get skew x
- * @name getSkewX
- * @method
- * @memberof Kinetic.Node.prototype
* @returns {Number}
+ * @example
+ * // get skew x
+ * var skewX = node.skewX();
+ *
+ * // set skew x
+ * node.skewX(3);
*/
/**
- * set skew y
- * @name setSkewY
+ * get/set skew y
+ * @name skewY
* @param {Number} y
* @method
* @memberof Kinetic.Node.prototype
- * @returns {Kinetic.Node}
- */
-
- /**
- * get skew y
- * @name getSkewY
- * @method
- * @memberof Kinetic.Node.prototype
* @returns {Number}
+ * @example
+ * // get skew y
+ * var skewY = node.skewY();
+ *
+ * // set skew y
+ * node.skewY(3);
*/
Kinetic.Factory.addPointGetterSetter(Kinetic.Node, 'center', 0);
@@ -1771,11 +1786,14 @@
* @param {Number} center.y
* @returns {Object}
* @example
- * // set x and y
- * shape.center({
+ * // get center
+ * var center = node.center();
+ *
+ * // set center
+ * node.center({
* x: 20
* y: 10
- * });
+ * });
*/
/**
@@ -1783,7 +1801,13 @@
* @name centerX
* @memberof Kinetic.Node.prototype
* @param {Number} x
- * @returns {Integer}
+ * @returns {Number}
+ * @example
+ * // get center x
+ * var centerX = node.centerX();
+ *
+ * // set center x
+ * node.centerX(3);
*/
/**
@@ -1792,87 +1816,119 @@
* @method
* @memberof Kinetic.Node.prototype
* @param {Number} y
- * @returns {Integer}
+ * @returns {Number}
+ * @example
+ * // get center y
+ * var centerY = node.centerY();
+ *
+ * // set center y
+ * node.centerY(3);
*/
Kinetic.Factory.addSetter(Kinetic.Node, 'width', 0);
Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node, 'width');
-
/**
- * set width
- * @name setWidth
+ * get/set width
+ * @name width
* @method
* @memberof Kinetic.Node.prototype
* @param {Number} width
- * @returns {Kinetic.Node}
+ * @returns {Number}
+ * @example
+ * // get width
+ * var width = node.width();
+ *
+ * // set width
+ * node.width(100);
*/
Kinetic.Factory.addSetter(Kinetic.Node, 'height', 0);
Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node, 'height');
-
/**
- * set height
- * @name setHeight
+ * get/set height
+ * @name height
* @method
* @memberof Kinetic.Node.prototype
* @param {Number} height
- * @returns {Kinetic.Node}
+ * @returns {Number}
+ * @example
+ * // get height
+ * var height = node.height();
+ *
+ * // set height
+ * node.height(100);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'listening', 'inherit');
-
/**
- * listen or don't listen to events. Can be "inherit", true, or false. The default is "inherit".
- * @name setListening
- * @method
- * @memberof Kinetic.Node.prototype
- * @param {Boolean|String} listening
- * @returns {Kinetic.Node}
- */
-
- /**
- * determine if node is listening or not.
- * @name getListening
+ * get/set listenig attr. If you need to determine if a node is listening or not
+ * by taking into account its parents, use the isListening() method
+ * @name listening
* @method
* @memberof Kinetic.Node.prototype
+ * @param {Boolean|String} listening Can be "inherit", true, or false. The default is "inherit".
* @returns {Boolean|String}
+ * @example
+ * // get listening attr
+ * var listening = node.listening();
+ *
+ * // stop listening for events
+ * node.listening(false);
+ *
+ * // listen for events
+ * node.listening(true);
+ *
+ * // listen to events according to the parent
+ * node.listening('inherit');
*/
-
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'filters');
/**
- * get/set filters
+ * get/set filters. Filters are applied to cached canvases
* @name filters
* @method
* @memberof Kinetic.Node.prototype
* @param {Array} filters array of filters
* @returns {Array}
* @example
+ * // get filters
+ * var filters = node.filters();
+ *
* // set a single filter
+ * node.cache();
* node.filters([Kinetic.Filters.Blur]);
*
- * // get filters
- * var filters = node.filters();
+ * // set multiple filters
+ * node.cache();
+ * node.filters([
+ * Kinetic.Filters.Blur,
+ * Kinetic.Filters.Sepia,
+ * Kinetic.Filters.Invert
+ * ]);
*/
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'visible', 'inherit');
-
/**
- * set visible. Can be "inherit", true, or false. The default is "inherit".
- * @name setVisible
+ * get/set visible attr. Can be "inherit", true, or false. The default is "inherit".
+ * If you need to determine if a node is visible or not
+ * by taking into account its parents, use the isVisible() method
+ * @name visible
* @method
* @memberof Kinetic.Node.prototype
- * @param {Boolean} visible
- * @returns {Kinetic.Node}
- */
-
- /**
- * get visible property for the node. If you need to determine if the node is actually visible,
- * use the isVisible() method because it takes ancestors into account
- * @name getVisible
- * @method
- * @memberof Kinetic.Node.prototype
- * @returns {Boolean}
+ * @param {Boolean|String} visible
+ * @returns {Boolean|String}
+ * @example
+ * // get visible attr
+ * var visible = node.visible();
+ *
+ * // make invisible
+ * node.visible(false);
+ *
+ * // make visible
+ * node.visible(true);
+ *
+ * // make visible according to the parent
+ * node.visible('inherit');
*/
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'transformsEnabled', 'all');
@@ -1885,6 +1941,12 @@
* @memberof Kinetic.Node.prototype
* @param {String} enabled
* @returns {String}
+ * @example
+ * // enable position transform only to improve draw performance
+ * node.transformsEnabled('position');
+ *
+ * // enable all transforms
+ * node.transformsEnabled('all');
*/
Kinetic.Collection.mapMethods([