fix(canvas): emit should call with view as this
fix(sample): 贪吃蛇重力感应版: some typo and bugs
This commit is contained in:
@@ -275,7 +275,7 @@ module.exports = function (runtime, global) {
|
||||
var args = arguments;
|
||||
global.__exitIfError__(function () {
|
||||
//不支持使用apply的原因是rhino会把参数中的primitive变成object
|
||||
functionApply(view.emit, args);
|
||||
functionApply(view, view.emit, args);
|
||||
//view.emit.apply(view, args);
|
||||
});
|
||||
}
|
||||
@@ -330,7 +330,7 @@ module.exports = function (runtime, global) {
|
||||
var args = arguments;
|
||||
global.__exitIfError__(function () {
|
||||
//不支持使用apply的原因是rhino会把参数中的primitive变成object
|
||||
functionApply(list.emit, args);
|
||||
functionApply(list, list.emit, args);
|
||||
//view.emit.apply(view, args);
|
||||
});
|
||||
}
|
||||
@@ -354,21 +354,21 @@ module.exports = function (runtime, global) {
|
||||
return e;
|
||||
}
|
||||
|
||||
function functionApply(func, args) {
|
||||
function functionApply(obj, func, args) {
|
||||
if (args.length == 0)
|
||||
return func();
|
||||
return func.call(obj);
|
||||
if (args.length == 1)
|
||||
return func(args[0]);
|
||||
return func.call(obj, args[0]);
|
||||
if (args.length == 2)
|
||||
return func(args[0], args[1]);
|
||||
return func.call(obj, args[0], args[1]);
|
||||
if (args.length == 3)
|
||||
return func(args[0], args[1], args[2]);
|
||||
return func.call(obj, args[0], args[1], args[2]);
|
||||
if (args.length == 4)
|
||||
return func(args[0], args[1], args[2], args[3]);
|
||||
return func.call(obj, args[0], args[1], args[2], args[3]);
|
||||
if (args.length == 5)
|
||||
return func(args[0], args[1], args[2], args[3], args[4]);
|
||||
return func.call(obj, args[0], args[1], args[2], args[3], args[4]);
|
||||
if (args.length == 6)
|
||||
return func(args[0], args[1], args[2], args[3], args[4], args[5]);
|
||||
return func.call(obj, args[0], args[1], args[2], args[3], args[4], args[5]);
|
||||
throw new Error("too many arguments: " + args.length);
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ public class ScriptCanvasView extends SurfaceView implements SurfaceHolder.Callb
|
||||
canvas = holder.lockCanvas();
|
||||
scriptCanvas.setCanvas(canvas);
|
||||
scriptCanvas.drawColor(Color.WHITE);
|
||||
emit("draw", scriptCanvas, this);
|
||||
emit("draw", scriptCanvas, ScriptCanvasView.this);
|
||||
holder.unlockCanvasAndPost(canvas);
|
||||
canvas = null;
|
||||
long dt = mTimePerDraw - (SystemClock.uptimeMillis() - time);
|
||||
|
||||
Reference in New Issue
Block a user