控制層的畫布的大小,我想用許多小層獲得的密集繪圖性能,但我發現(與螢火),設置單獨的層的大小隻是不調整各自的畫布尺寸:所有創建的畫布都有舞臺尺寸!不能與KineticJS
這不是一個小的階段(至少沒有太多層)的問題,而是一個巨大的舞臺,近百層不會出現是一個性能問題?
換句話說,這是一個有用的功能或錯誤?
下面是一個簡單的測試代碼:
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>
感謝您的回答,它證實了我的想法!我敢打賭,這個限制是爲了讓其他功能正常工作而完成的,儘管我確信可以通過控制較小的畫布來增加性能,這取決於一個精確的項目。那我就去吧。謝謝 – Sushen 2013-03-11 08:53:36