Cocoon JS和Kinetic JS

时间:2013-06-26 08:40:08

标签: html5 kineticjs cocoonjs

我正在开发儿童教育游戏(D& D,颜色,形状,数字等),我正在使用KineticJS。它在Ipad 4和Iphone 5上运行良好,但在Android设备上它以非常低的帧速率运行(Galaxy Tab 2和Galaxy S2)。我尝试使用Cocoon JS编译应用程序以启用画布加速,但它会在启动屏幕上卡住(使用phonegap构建它运行正常)。

我是否必须对Kinetic源代码进行任何更改以构建在CocoonJS上?有没有其他方法可以改善Android设备上的Kinetic性能?

1 个答案:

答案 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});