2012-05-10 21 views
0

これは可能ですか? 私は、ユーザが別の要素の上で役割を果たすときにムービークリップが起動されるファイルを持っています。ユーザー体験をより快適にするために、これはsetIntervalを使用して3秒後に発生します。 3秒前にユーザーが要素をロールオフすると、この時間を停止してリセットする方法はありますか?AS2で実行中のsetIntervalの遅延をキャンセルする

var xTimer = setInterval(wait, 3000); 
function wait(){ 
    show('all'); 
    play('all'); 
    clearInterval(xTimer); 
} 

は、上記の私は遅延を設定するために使用したコードであり、以下、私は中断し、タイマーをリセットすると想定していたコードです。

invisBtn.onRollOut = function(){ 
    rollover_mc.gotoAndStop(1); 
    stop(); 
    clearInterval(xTimer()); 
    trace('off'); 
} 

これについての助力は大いに感謝します。

答えて

0

最初に、setInterval & clearInterval関数は、Number変数を使用して動作します。

setInterval()はNumber変数を返し、clearInterval()はそのNumber inパラメータを使用して前に開始した間隔を削除します。ここでは、インターバルIDをNumberの代わりに関数変数の中に保持しているようです。

したがって、clearInterval(xTimer());は、実際にはclearInterval(xTimer)である必要があります。 (xTimerの後に括弧を付けないで)。

第2に、invisBtn.onRollOut関数で使用できるように、xTimer変数が正しくスコープされていることを確認します(invisBtn.onRollOutも含まれていない関数内ではなく)。異なるキーフレームではありませんタイムラインのタイムライン(Flashのタイムラインのキーフレームは、読み込みヘッドがコードを持つレイヤーの新しいキーフレームに移動するとすぐに書き留めたコードを忘れる傾向があります)。

必要に応じて詳細をお気軽にお問い合わせください!

関連する問題