我正在使用动力学js并使用单击事件来突出显示单击时的元素。我有一个问题,即在第二次点击之前事件不会触发。
function Canvas(){
this.stage;
this.backgroundLayer;
}
Canvas.prototype.init = function(w, h){
this.stage = new Kinetic.Stage({
container: 'container',
width: w,
height: h
});
this.backgroundLayer = new Kinetic.Layer();
this.stage.add(this.backgroundLayer);
this.addLayerListeners();
}
Canvas.prototype.addLayerListeners = function(){
this.backgroundLayer.on('click',function(evt){
var shape = evt.targetNode;
shape.stroke('#00ff00');
shape.strokeWidth('5');
});
}
这是正常行为吗?否则,我做错了什么?
答案 0 :(得分:1)
必须有比我看到的代码更多的代码。 例如,在事件监听器中,你必须在某处有一个shape.draw(),layer.draw()或stage.draw()。
我在onclick(select)函数中使用了类似的方法:
shape.setStroke('black');
shape.setStrokeWidth(4);
shape.enableStroke();
shape.draw();
在删除笔划(取消选择)功能中:
shape.disableStroke();
shape.draw();