2017-01-27 56 views
-3

我想創建一個教學門戶,在這裏學生將學習算法的基礎知識。我在JavaScript中使用了線柵格化算法,並且我想'調試'或'減慢'算法,因爲它顯示了算法期間發生的情況並顯示了該算法背後的基本操作。不幸的是,我無法找到如何去做的方法。當我調試我的.js時,它正在運行,但運行速度非常快,用戶無法看到它。我需要一些東西,這會暫停算法幾秒鐘,然後繼續。我嘗試了setTimeout函數,但它沒有按照我的預期工作。我試圖製作sleep function,但它凍結了整個算法。我讀了很多關於這個,並沒有找到答案。最糟糕的情況是添加按鈕,用戶將按下按鈕,然後它會繼續(我可以考慮解決方案,但實際上沒有嘗試過)。我的代碼的Here is basic:你點擊兩個點,然後算法開始。它將變量的值輸出到畫布中,併爲在循環中計算的像素着色(在畫布上)。我想爲學生看到循環「放慢速度」,在哪一行是算法,以及它如何確定哪一個像素它接下來的顏色。函數Highlight()顯示算法的位置以及當前的值,這並不重要,我只需要在那裏暫停幾秒鐘,然後繼續。 非常感謝如何在算法運行期間「減慢」算法或如何暫停

回答

0

我認爲setTimeout()需要一個沒有圓括號的函數作爲第一個參數。你不能這樣撥打Highlight(x)。相反,你需要做的是setTimeout(function(){Highlight(x)},1000)