我使用此代码来调整舞台大小。在桌面上一切都很好,但Ipad safari和chrome崩溃了。我试图删除其他一些东西,并认为它只能是强制崩溃的调整大小。奇怪的是,这段代码前一段时间工作了,我很惊讶它现在还没有。有人有想法或者可能有另一种调整大小的方法吗? 提前致谢
window.onresize = function(event) {
stage.setWidth(window.innerWidth);
stage.setHeight(window.innerHeight);
stage.draw();
}
答案 0 :(得分:1)
问题是你每秒触发stage.draw()数百次。 KineticJS v4.5.5将使用stage.batchDraw()方法解决此问题,该方法将绘制到动画引擎中以获得性能。这样,如果你通过mousemove每秒调用stage.batchDraw()几百次,那么每秒只能绘制大约60次。
答案 1 :(得分:0)
可能是因为iPad不支持innerWidth
和innerHeight
(我知道并非所有移动设备都支持它),因此您的代码可能因为尝试设置舞台宽度和高度而崩溃到undefined
个数字。
您必须使用替代方法将舞台设置为屏幕尺寸。
您可以尝试以下方式:
if (window.innerWidth) {
width = window.innerWidth;
height = window.innerHeight;
} else {
width = screen.width;
height = screen.height;
}
如果这对您不起作用,您将不得不考虑其他方式来处理不同的屏幕尺寸。我不久前发现了这篇文章:http://tripleodeon.com/2011/12/first-understand-your-screen/