我想開發一個非常簡單的戰略遊戲。 你可以在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