2013-06-26 65 views
0

我正在爲兒童開發教育遊戲(D & D,顏色,形狀,數字等),我正在使用KineticJS來達到此目的。它在Ipad 4和Iphone 5上運行良好,但在Android設備上運行時幀速率非常低(Galaxy Tab 2和Galaxy S2)。我試圖用Cocoon JS編譯應用程序以啓用畫布加速,但它在啓動屏幕上停留(使用phonegap構建它運行良好)。Cocoon JS和Kinetic JS

我必須對Kinetic源代碼進行任何修改才能在CocoonJS上構建?有沒有其他方法可以提高Android設備的動力學性能?

+0

您是否嘗試將視口設置爲以下值:''?如果您將遊戲擴展到'window.innerWidth',則性能會有很大差異,因爲移動瀏覽器使用960像素左右的標準視口寬度;) – irie

+0

嗨!我改變了你的視口標籤(''),但是星系選項卡上的性能相同。 –

回答

0

Cocoonjs無法呈現父容器(其div)。你需要覆蓋Kinetic的原型。

Kinetic.Stage.prototype._buildDOM = function() { 
this.content = this.attrs.container; 
this.hitCanvas = new Kinetic.Canvas(0, 0, true); 

this.bufferCanvas = new Kinetic.SceneCanvas({ 
    pixelRatio: 1 
}); 

this.bufferHitCanvas = new Kinetic.HitCanvas(); 

this._resizeDOM(); 

};

Kinetic.Stage.prototype._getContentPosition = function(){ var rect = this.content.getBoundingClientRect? this.content.getBoundingClientRect():{top:0,left:0}; return {top:rect.top,left:rect.left}; };

然後建立你的主舞臺。

this.stage = new Kinetic.Stage({width:960,height:500,container:document.body});