Win8 Metro应用程序setInterval Javascript
我对构建Metro应用程序还不熟悉。 我只想每秒创建一个新的矩形,并从位置x=0开始 但在我的代码中,似乎在绘制第一个矩形之前调用了x+=10。但是我不知道我怎样才能改变这个。。有人能帮我吗Win8 Metro应用程序setInterval Javascript,javascript,microsoft-metro,Javascript,Microsoft Metro,我对构建Metro应用程序还不熟悉。 我只想每秒创建一个新的矩形,并从位置x=0开始 但在我的代码中,似乎在绘制第一个矩形之前调用了x+=10。但是我不知道我怎样才能改变这个。。有人能帮我吗 (function () { "use strict"; var app = WinJS.Application; var activation = Windows.ApplicationModel.Activation; WinJS.strictProcessing();
(function () {
"use strict";
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
WinJS.strictProcessing();
var x = 0;
var y = 0;
function Clock(context) {
context.fillRect(x, y, 9, 9);
context.fillStyle = "red";
x += 10;
}
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
var canvas = document.getElementById("uhr");
var context = canvas.getContext("2d");
setInterval(function () { Clock(context) }, 1000);
} else {
}
args.setPromise(WinJS.UI.processAll());
}
};
app.oncheckpoint = function (args) {
};
app.start();
})();
尝试将Clock()中的x和y值存储在临时的局部变量中
function Clock(context) {
var tmpX = x;
var tmpY = y;
context.fillRect(tmpX, tmpY, 9, 9);
context.fillStyle = "red";
x += 10;
}
我已经用context.fill()解决了这个问题;在执行x+=10;之前