2013-07-15 88 views
0

我使用此代碼來調整舞臺大小。在桌面上一切都很好,但Ipad Safari和Chrome崩潰。我試圖刪除一些其他的東西,並認爲它只能是強制崩潰的大小。奇怪的是,這段代碼很久以前就開始工作了,我很驚訝它現在不是。任何人都有想法或者另一種調整方法? 在此先感謝kinetic js崩潰調整大小ipad

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

回答

0

這可能是因爲iPad不支持innerWidthinnerHeight(我知道並不是所有的移動設備都支持它),所以你的代碼可以通過崩潰試圖設置舞臺的寬度和高度到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/

1

問題是,你每秒觸發stage.draw()數百次。 KineticJS v4.5.5將通過stage.batchDraw()方法解決這個問題,該方法將鉤子繪製到動畫引擎中以獲得性能。這樣,如果通過mousemove每秒調用stage.batchDraw()數百次,則舞臺每秒鐘只能繪製約60次。