now that the attrs engine has been rewritten, we can cleanly hide and show the layer canvas whenever the layer is hidden or shown via instantiation or with setters. Also improved layer hide and show unit test

This commit is contained in:
ericdrowell 2012-09-25 12:22:22 -07:00
parent 74bef1e108
commit d522b9d9d0
4 changed files with 22 additions and 40 deletions

28
dist/kinetic-core.js vendored
View File

@ -3656,23 +3656,14 @@ Kinetic.Layer.prototype = {
clear: function() {
this.getCanvas().clear();
},
/**
* show layer
* @name show
* @methodOf Kinetic.Layer.prototype
*/
show: function() {
Kinetic.Node.prototype.show.call(this);
this.canvas.element.style.display = 'block';
},
/**
* hide layer. Hidden layers are no longer detectable
* @name hide
* @methodOf Kinetic.Layer.prototype
*/
hide: function() {
Kinetic.Node.prototype.hide.call(this);
this.canvas.element.style.display = 'none';
setVisible: function(visible) {
Kinetic.Node.prototype.setVisible.call(this, visible);
if(visible) {
this.canvas.element.style.display = 'block';
}
else {
this.canvas.element.style.display = 'none';
}
},
/**
* Creates a composite data URL. If MIME type is not
@ -3715,8 +3706,7 @@ Kinetic.Layer.prototype = {
*/
try {
this.getStage().content.removeChild(this.canvas.element);
}
catch(e) {
} catch(e) {
Kinetic.Global.warn('unable to remove layer scene canvas element from the document');
}
},

File diff suppressed because one or more lines are too long

View File

@ -139,23 +139,14 @@ Kinetic.Layer.prototype = {
clear: function() {
this.getCanvas().clear();
},
/**
* show layer
* @name show
* @methodOf Kinetic.Layer.prototype
*/
show: function() {
Kinetic.Node.prototype.show.call(this);
this.canvas.element.style.display = 'block';
},
/**
* hide layer. Hidden layers are no longer detectable
* @name hide
* @methodOf Kinetic.Layer.prototype
*/
hide: function() {
Kinetic.Node.prototype.hide.call(this);
this.canvas.element.style.display = 'none';
setVisible: function(visible) {
Kinetic.Node.prototype.setVisible.call(this, visible);
if(visible) {
this.canvas.element.style.display = 'block';
}
else {
this.canvas.element.style.display = 'none';
}
},
/**
* Creates a composite data URL. If MIME type is not
@ -198,8 +189,7 @@ Kinetic.Layer.prototype = {
*/
try {
this.getStage().content.removeChild(this.canvas.element);
}
catch(e) {
} catch(e) {
Kinetic.Global.warn('unable to remove layer scene canvas element from the document');
}
},

View File

@ -1075,9 +1075,11 @@ Test.prototype.tests = {
layer2.hide();
test(!layer2.isVisible(), 'layer2 should be invisible');
test(layer2.canvas.element.style.display === 'none', 'layer canvas element display should be none');
layer2.show();
test(layer2.isVisible(), 'layer2 should be visible');
test(layer2.canvas.element.style.display === 'block', 'layer canvas element display should be block');
},
'LAYER - beforeDraw and afterDraw': function(containerId) {
var stage = new Kinetic.Stage({