added layer hitGraphEnabled flag

This commit is contained in:
Eric Rowell
2013-12-09 22:31:18 -08:00
parent 0bad22955a
commit 37c3ce1b47
5 changed files with 93 additions and 12 deletions

View File

@@ -263,22 +263,43 @@
},
getStage: function() {
return this.parent;
},
/**
* enable hit graph
* @name enableHitGraph
* @method
* @memberof Kinetic.Layer.prototype
* @returns {Node}
*/
enableHitGraph: function() {
this.setHitGraphEnabled(true);
return this;
},
/**
* disable hit graph
* @name enableHitGraph
* @method
* @memberof Kinetic.Layer.prototype
* @returns {Node}
*/
disableHitGraph: function() {
this.setHitGraphEnabled(false);
return this;
}
});
Kinetic.Util.extend(Kinetic.Layer, Kinetic.Container);
// add getters and setters
Kinetic.Factory.addGetterSetter(Kinetic.Layer, 'clearBeforeDraw', function() {
return true;
});
Kinetic.Factory.addGetterSetter(Kinetic.Layer, 'clearBeforeDraw', true);
/**
* set flag which determines if the layer is cleared or not
* before drawing
* @name setClearBeforeDraw
* @method
* @memberof Kinetic.Node.prototype
* @memberof Kinetic.Layer.prototype
* @param {Boolean} clearBeforeDraw
* @returns {Node}
*/
/**
@@ -286,6 +307,29 @@
* before drawing
* @name getClearBeforeDraw
* @method
* @memberof Kinetic.Node.prototype
* @memberof Kinetic.Layer.prototype
* @returns {Boolean}
*/
Kinetic.Factory.addGetterSetter(Kinetic.Layer, 'hitGraphEnabled', true);
/**
* enable / disable hit graph
* @name setHitGraphEnabled
* @method
* @memberof Kinetic.Layer.prototype
* @param {Boolean} enable
* @returns {Node}
*/
/**
* get flag which determines if the layer is cleared or not
* before drawing
* @name getHitGraphEnabled
* @method
* @memberof Kinetic.Layer.prototype
* @returns {Boolean}
*/
Kinetic.Layer.prototype.isHitGraphEnabled = Kinetic.Layer.prototype.getHitGraphEnabled;
})();

View File

@@ -418,7 +418,8 @@
* @returns {Boolean}
*/
shouldDrawHit: function() {
return this.isListening() && this.isVisible() && !Kinetic.isDragging();
var layer = this.getLayer();
return layer && layer.isHitGraphEnabled() && this.isListening() && this.isVisible() && !Kinetic.isDragging();
},
/**
* determine if node is visible or not. Node is visible only

View File

@@ -82,6 +82,9 @@
this._setAttr(CONTAINER, container);
return this;
},
shouldDrawHit: function() {
return true;
},
draw: function() {
Kinetic.Node.prototype.draw.call(this);
return this;