Kintetic.js は初めてで、グリッドを作成しようとしています。幅は800px、高さは400pxです。そして、その領域をカバーする正方形 (20x20) が必要です。すべての正方形には 1 ピクセルの境界線があります。だから、このようなもの:
var box = new Kinetic.Rect({
width: 20,
height: 20,
fill: 'transparent',
stroke: 'rgba(0, 0, 0, 0.02)'
});
キャンバスを埋めるために、次のようなくだらない for ループがあります。
for (var i = 0; i <= this.field.getWidth(); i = i + 20) {
for (var i2 = 0; i2 <= this.field.getHeight(); i2 = i2 + 20) {
var cbox = box.clone({x: i, y: i2});
this.grid.add(cbox);
}
}
this.gridは Kinetic.Layer です。このコードの最初の問題は、非常に遅く、グリッドが表示される前に 500 ミリ秒の遅延が発生することです。しかし、最悪の事態は、塗りつぶしの色を変更するために cbox に mouseover および mouseout イベントを配置すると、レンダリングが非常に遅くなることです。これは私がそれを行う方法です:
cbox.on('mouseover', function () {
this.setFill('black');
self.grid.draw();
});
cbox.on('mouseout', function () {
this.setFill('transparent');
self.grid.draw();
});
私の質問は、これのコードとパフォーマンスをどのように改善できますか?