0

我使用此代码来调整舞台大小。在桌面上一切都很好,但 Ipad Safari 和 chrome 崩溃了。我试图删除其他一些东西,并认为它只能是强制崩溃的调整大小。奇怪的是,虽然这段代码前一段时间有效,但我很惊讶它现在没有。任何人都有一个想法或另一种调整大小的方法?提前致谢

        window.onresize = function(event) {  
        stage.setWidth(window.innerWidth);
        stage.setHeight(window.innerHeight);
        stage.draw();   
        }           
4

2 回答 2

1

问题是您每秒触发 stage.draw() 数百次。KineticJS v4.5.5 将使用 stage.batchDraw() 方法解决此问题,该方法将绘制挂钩到动画引擎中以提高性能。这样,如果您通过 mousemove 每秒调用 stage.batchDraw() 数百次,则舞台每秒只会被绘制大约 60 次。

于 2013-07-16T16:58:34.407 回答
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/

于 2013-07-15T21:00:08.590 回答