Android stock browser fails clearing Scene.
Opened this issue · 2 comments
rtsan commented
Android 4.1 browser has issue about canvas clearRect.
http://code.google.com/p/android/issues/detail?id=39247
We should avoid that bug using the patch I have written below or better way.
enchant.CanvasLayer._onexitframe = function() {
_onexitframe: function() {
var core = enchant.Core.instance;
var ctx = this.context;
// the old method was ctx.clearRect(0, 0, core.width, core.height);
this.clearFunc(ctx, 0, 0, core.width, core.height);
var render = new enchant.Event(enchant.Event.RENDER);
this._rendering(this, render);
};
// case Android but Scene should have opaque backgroundColor.
enchant.CanvasLayer.clearFunc = function(context, x, y, width, height) {
context.fillStyle = this.parentNode.backgroundColor;
context.fillRect(x, y, width, height);
};
// other correct browser
enchant.CanvasLayer.clearFunc = function(context, x, y, width, height) {
context.clearRect(0, 0, core.width, core.height);
};
// ???
enchant.CanvasLayer.clearFunc = function(context, x, y, width, height) {
context.canvas.width = context.canvas.width;
};
rtsan commented
enchant.CanvasLayer.clearFunc = function(context, x, y, width, height) {
context.putImageData(clearData, 0, 0);
};
sidestepism commented
上記のコードで解決するという情報を得ました。