我正在为孩子们开发一个教育游戏(D&D,颜色,形状,数字等),我正在使用KineticJS来实现这个目的。它在iPad4和iPhone5上运行良好,但在安卓设备上帧速率非常低(Galaxy Tab2和Galaxy S2)。我试图用Cocoon JS编译应用程序以启用canvas加速,但它在启动屏幕上卡住了(使用phonegap build它运行得很好)。
为了在CocoonJS上构建,我必须对Kinetic源代码进行任何更改吗?有没有其他方法可以提高android设备的Kinetic性能?
发布于 2014-04-23 18:31:51
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 =新容器({Kinetic.Stage: 960,height: 500,document.body});
https://stackoverflow.com/questions/17315344
复制相似问题