KineticJSを使用していて、集中的な描画のパフォーマンスを得るために多くの小さなレイヤーを使用したいのですが、個々のレイヤーサイズを設定しても、それぞれのキャンバスサイズが調整されないことがわかりました(ファイアバグを使用)。作成されたすべてのキャンバスにステージがあります。寸法!
これは、小さなステージ(少なくともレイヤーが多すぎない場合)では問題になりませんが、大きなステージと100近くのレイヤーでは、パフォーマンスの問題はありませんか?
言い換えれば、これは必要な機能ですか、それともバグですか?
簡単なテストコードは次のとおりです。
var stage = new Kinetic.Stage({
container: 'main',
width: 400,
height: 400,
});
for (var i=0; i<5; i++) {
var layer = new Kinetic.Layer({
x:i*30+10,
y:i*30+10,
width:20,
height:20,
});
layer.add( new Kinetic.Rect({
width: 20,
height: 20,
fill: 'red',
}));
stage.add(layer);
// trying to force layer dimensions
layer.setWidth(20);
layer.setHeight(20);
}
stage.draw();
そして、ここで、DOMを見たときに私が見るもの:
<div id="main">
<div style="position: relative; display: inline-block; width: 400px; height: 400px;" class="kineticjs-content">
<canvas width="400" style="width: 400px; height: 400px; position: absolute;" height="400"></canvas>
<canvas width="400" style="width: 400px; height: 400px; position: absolute;" height="400"></canvas>
<canvas width="400" style="width: 400px; height: 400px; position: absolute;" height="400"></canvas>
<canvas width="400" style="width: 400px; height: 400px; position: absolute;" height="400"></canvas>
<canvas width="400" style="width: 400px; height: 400px; position: absolute;" height="400"></canvas>
</div>
</div>