SetTimeout関数の後に関数を呼び出す

I have this code that make an image animation, but I want to call the function AnotherAction() when the animation is finished through the call clearTimeout(gLoop);

var Animate = function(){  
    Clear();  
    MoveDown();  
    gLoop = setTimeout(Animate,40);  
}

var MoveDown = function(){  
   //animation code  
    if(velocity==0){  
        clearTimeout(gLoop);  
        AnotherAction();  //Here is not working  
    }  
}

AnotherAction()を呼び出す必要があるのはどこですか?

1

1 答え

問題は、次回に設定する前に タイムアウトをクリアしていることです。 MoveDown はタイムアウトをクリアしていますが、コントロールがAnimateに戻ったらすぐにもう一度設定します。

次のようなことを試してください:

var Animate = function(){  
    Clear();  
    if (MoveDown())
        gLoop = setTimeout(Animate,40);  
}

var MoveDown = function(){  
   //animation code  
    if(velocity==0){  
        AnotherAction();  //Here is not working  
        return false;
    }
    return true;  
}
3
追加された
@JaredFarrish - それは他の関数を呼び出すことができますが、Animateを呼び出す元のsetTimeoutがまだ解雇されていることが原因であると想定しています。
追加された 著者 Adam Rackis,
@JaredFarrish - もちろんそれはすべきです - ありがとう
追加された 著者 Adam Rackis,
@ JaredFarrish - 間違いない。 インターネットハイ5 :-)
追加された 著者 Adam Rackis,
@トム - 私の喜び。がんばろう!
追加された 著者 Adam Rackis,
ありがとう!!!それはまさに私が探していたものです:D
追加された 著者 Tom Sarduy,
私はそれを得ることができません、別の関数呼び出しの前に clearTimeout()がその関数の呼び出しを許可しないのはなぜですか?
追加された 著者 Jared Farrish,
ああ、そうだ。
追加された 著者 Jared Farrish,
if ブロックが実行されない場合、 MoveDown trueを返します
追加された 著者 Jared Farrish,
私たちは良いチームを作っています。 :D
追加された 著者 Jared Farrish,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript