0

AS3 でムービークリップ内のすべての子ムービークリップを停止する方法は?このフォーラム投稿で同じ問題が正確に説明されています。

私の要件を除いて、ユーザーが一時停止ボタンをクリックすると、ムービークリップの子要素を保持している現在のフレームは gotoAndStop および 25 フレームである必要があります。

また、タイマー機能を使用しているため、ユーザーが一時停止ボタンをクリックするとタイマーを停止する必要があります。これは、次のコードを追加すると実際に機能しmyTimer.stop();ますが、再生ボタンをクリックすると、これを配置しますmyTimer.start();。問題はmyTimer.start();機能によるもので、実際にはタイマーを最初からやり直していますが、タイマーを再開する必要があります。

これらの問題から私を助けることができますか?できるだけ速くに

4

3 に答える 3

1

すべての子ムービークリップを停止するには、質問でリンクした回答で提供されているコードを使用できます。

yourButton.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void {
    stopAllClips(yourMovieClip);
}

function stopAllClips(mc:MovieClip):void
{
    var n:int = mc.numChildren;
    for (var i:int=0;i<n;i++)
    {
        var clip:MovieClip = mc.getChildAt(i) as MovieClip;
        if (clip && clip.name != 'mc_2')
            clip.gotoAndStop(2);
    }
}

タイマーを「再開」するには、再度「再開」できるように変数を保持する必要があります。このようなもの:

var tempTimerCount:int = 0;
var timer:Timer = new Timer(1000);
timer.start();

そして、停止したい場合:

tempTimerCount += timer.currentCount;
timer.stop();

そして、開始後、そのタイマーの値を取得したい場合は、timer.currentCount + tempTimerCount;を取得する必要があります。

それが役に立てば幸い。

于 2013-08-06T21:52:28.547 に答える
0

100% 動作するこのコードを試してください

このコードをメイン タイムラインに配置し、マウス イベント MovieClip_name.stopAllClips();を使用して呼び出します。

MovieClip.prototype.stopAllClips = function():void { var mc:MovieClip = this; var n:int = mc.numChildren; mc.stop(); for (var i:int=0; i<n; i++) { var clip:MovieClip = mc.getChildAt(i) as MovieClip; if (clip) { clip.stop(); clip.stopAllClips(); } } }

于 2016-11-22T06:47:35.887 に答える