我想开发一个非常简单的战略游戏。 你可以在http://wiesenberg.info/hope/找到一个例子!JavaScript回调 - 多线程
如果你点击一个按钮,该项目将被创建(进度条)。项目完成后,该项目将出现在操场上。正如你可以看到它的作品,如果你逐一点击。但是,一旦你点击一个按钮两次(开始2个同类型的项目),第二个项目就不会完成,因为第一个项目没有完成并增加了变量。有多线程简单的方法或解决我的错误?
我也想添加一个函数,你可以通过点击进度条来停止项目。我试了一下,它消失在列表中,但图标仍然显示,因为该函数没有得到执行另一个函数。所以我还需要进度条的休息功能。我希望你承担我的问题!由于
继承人的重要代码:
function addSygehus() {
sygehusBarID++;
sygehusID++;
$("#addProject").append("<div id=sygehus" + sygehusID +
" class='progress progress-striped active'><div class='progress-bar progress-bar-success' id=sygehusbar"
+ sygehusBarID + " aria-valuetransitiongoal='100'>Sygehus</div></div>");
function countdown(callback) {
var bar = document.getElementById("sygehusbar"+sygehusBarID),
time = 0, max = firsttime,
int = setInterval(function() {
bar.style.width = Math.floor(100 * time++/max) + '%';
if (time - 1 == max) {
clearInterval(int);
// 600ms - width animation time
callback && setTimeout(callback, 600);
}
}, 1000);
}
countdown(function() {
$("#sygehus" + sygehusID).remove();
$("#sygehusPic" + sygehusID).show(1000);
});
}
Javascript只有一个线程,唯一的其他选择是webworkers或异步行为(这将很难用同步动作来伪造)。 – adeneo
所以没有解决方法?还有另一种做进度条的方法吗?比这个倒计时更快的方法吗? – Marc
这不是关于多线程或任何事情的问题。它只是取消进度条的代码的问题也做任何必要的清理(调用clearInterval,删除任何div等)。然而,我们不能帮助你,没有代码来实现进度条。 – hugomg