0

これは可能ですか?ユーザーが別の要素にロールしたときにムービークリップが起動されるファイルがあります。ユーザー エクスペリエンスをより快適にするために、これは setInterval を使用して 3 秒遅れて発生します。3 秒が経過する前にユーザーが要素をロールオフした場合、今回は停止してリセットする方法はありますか?

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');
}

これに関するヘルプは大歓迎です。

4

1 に答える 1

0

まず、setInterval関数とclearInterval関数はNumber変数を使用して機能します。

setInterval()はNumber変数を返し、clearInterval()はパラメーター内のそのNumberを取得して、前に開始された間隔を削除します。ここでは、間隔IDをナンバーワンではなく関数変数内に保持しているようです。

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

次に、invisBtn.onRollOut関数で使用できるように、xTimer変数のスコープが正しく設定されていること(invisBtn.onRollOutが含まれていない関数内ではないこと)を確認し、タイムラインの異なるキーフレームでは使用しないようにします( Flashのタイムラインキーフレームは、読み取りヘッドがコードを含むレイヤーの新しいキーフレームに移動するとすぐに、書き込んだコードを忘れがちです。

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

于 2012-05-28T15:55:21.993 に答える