【发布时间】:2013-05-07 20:32:33
【问题描述】:
我正在编写一个应用程序,我必须在其中绘制大量可拖动的二次曲线。
我为此使用 Kinetic.Shape (KineticJS 4.4.3)。
由于性能不是很好,我尝试分析和优化代码,发现drawFunc函数执行了两次。 查看随附的演示代码。
var stage = new Kinetic.Stage({
container: 'kinetic',
width: 400,
height: 300
});
var curveLayer = new Kinetic.Layer();
var line = new Kinetic.Shape({
drawFunc: function (canvas) {
console.log("drawFunc executed");
var context = canvas.getContext();
context.beginPath();
context.moveTo(10, 10);
context.quadraticCurveTo(95, 100, 200, 10);
canvas.stroke(this);
},
strokeWidth: 10
});
curveLayer.add(line);
stage.add(curveLayer);
如果你运行脚本,控制台中会出现 2 次“drawFunc executed”。
我不明白为什么,我问自己是否有更好的方法。
【问题讨论】:
标签: performance kineticjs quadratic-curve