簡體   English   中英

如何防止執行JavaScript代碼?

[英]How to prevent javascript code from executing?

我遇到一個簡單而令人困惑的問題:如何停止執行一段JavaScript代碼?

在我的游戲中,我有一個函數(有延遲,因為該函數執行死亡序列)。 由於延遲,該功能需要5秒鍾才能完成執行。

我希望此功能在繼續執行其余代碼之前完全完成執行。 但是由於該函數仍在執行,因此剩余的代碼(擦除畫布)將被執行。

如何停止呢?

棘手的解決方案:

讓死亡序列在開始時將全局變量設置為true ,在結束時將其設置為false 在渲染循環函數的開始,您檢查該全局變量並return; 當它是真的。

較干凈的解決方案是在邏輯循環和渲染循環中都具有正確的狀態處理。

我還沒有看到您的代碼,但是聽起來您可能想使用回調。

function deathSequence(callback) {
    ...
    function step() {
        lots_of_stuff;
        ...
        if(sequence_done) {
            callback();
        } else {
            setTimeout(step, 100);
        }
    }
    step();
    ...
}

function game() {
    ...
    if(dead) {
        deathSequence(function() {
            // Canvas won't get wiped until death
            // sequence is over
            wipe canvas;
        })
    }
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM