我正在开发儿童教育游戏(D& D,颜色,形状,数字等),我正在使用KineticJS。它在Ipad 4和Iphone 5上运行良好,但在Android设备上它以非常低的帧速率运行(Galaxy Tab 2和Galaxy S2)。我尝试使用Cocoon JS编译应用程序以启用画布加速,但它会在启动屏幕上卡住(使用phonegap构建它运行正常)。
我是否必须对Kinetic源代码进行任何更改以构建在CocoonJS上?有没有其他方法可以改善Android设备上的Kinetic性能?
答案 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});