This commit is contained in:
Eric Rowell
2013-04-04 23:17:20 -07:00
parent 280e07a2af
commit d57842126a
5 changed files with 36 additions and 44 deletions

View File

@@ -45,25 +45,23 @@
}
},
/**
* set before draw handler
* @name beforeDraw
* @methodOf Kinetic.Layer.prototype
* @param {Function} handler
*/
beforeDraw: function(func) {
this.beforeDrawFunc = func;
return this;
drawScene: function(canvas) {
var layer = this.getLayer();
if(layer && layer.getClearBeforeDraw()) {
layer.getCanvas().clear();
}
Kinetic.Container.prototype.drawScene.call(this, canvas);
},
/**
* set after draw handler
* @name afterDraw
* @methodOf Kinetic.Layer.prototype
* @param {Function} handler
*/
afterDraw: function(func) {
this.afterDrawFunc = func;
return this;
drawHit: function() {
var layer = this.getLayer();
if(layer && layer.getClearBeforeDraw()) {
layer.getHitCanvas().clear();
}
Kinetic.Container.prototype.drawHit.call(this);
},
/**
* get layer canvas

View File

@@ -992,16 +992,10 @@
* the scene renderer
*/
draw: function() {
var layer = this.getLayer(),
evt = {
var evt = {
node: this
};
if(layer && layer.getClearBeforeDraw()) {
layer.getCanvas().clear();
layer.getHitCanvas().clear();
}
this.fire(BEFORE_DRAW, evt);
this.drawScene();
this.drawHit();

File diff suppressed because one or more lines are too long

View File

@@ -28,41 +28,39 @@ Test.Modules.LAYER = {
test(style.padding === '0px', 'canvas padding style should be 0px');
test(style.backgroundColor === 'transparent', 'canvas backgroundColor style should be transparent');
},
'beforeDraw and afterDraw': function(containerId) {
'redraw hit graph': function(containerId) {
var stage = new Kinetic.Stage({
container: containerId,
width: 578,
height: 200
});
var layer = new Kinetic.Layer();
var circle = new Kinetic.Circle({
x: 100,
y: stage.getHeight() / 2,
radius: 70,
var rect = new Kinetic.Rect({
x: 200,
width: 100,
height: 50,
fill: 'green',
stroke: 'black',
strokeWidth: 4
strokeWidth: 4,
scale: [3, 1],
draggable: true,
strokeScaleEnabled: false
});
layer.add(circle);
rect.colorKey = '000000';
layer.add(rect);
stage.add(layer);
var counter = 0;
rect.setY(100);
layer.drawHit();
layer.beforeDraw(function() {
counter++;
test(counter === 1, 'counter should be 1');
});
showHit(layer);
layer.afterDraw(function() {
counter++;
test(counter === 2, 'counter should be 2');
});
testDataUrl(layer.hitCanvas.toDataURL(), 'black rect hit graph', 'redrawn hitgraph data url is incorrect');
layer.draw();
},
'set clearBeforeDraw to false, and test toDataURL for stage, layer, group, and shape': function(containerId) {
var stage = new Kinetic.Stage({
container: containerId,

View File

@@ -26,6 +26,7 @@ Test.Modules.SHAPE = {
testDataUrl(layer.toDataURL(), 'scaled rect with disabled stroke scale', 'probem with stroke scale disabling');
},
'test intersects()': function(containerId) {
var stage = new Kinetic.Stage({
container: containerId,