0

ロードされたムービー クリップのタイムラインの進行状況を監視する進行状況バーを作成しようとしています。そこにあるチュートリアルのほとんどは、プリローダーに基づいています。コンセプトは似ていると思いますが、苦労しています。

ユーザーは、左側のナビゲーション メニューをクリックして、さまざまなムービー クリップをロードします。プログレス バーで、ユーザーがムービー クリップのタイムラインのどこにいるのかを示したいと思います。また、新しいムービー クリップが読み込まれたときにプログレス バーが最初からやり直されるようにしたいと思います。

プログレス バーの幅は 508 ピクセルです。

何か案は?

4

1 に答える 1

0

本当に簡単です。合計幅に、ムービー クリップに含まれるパーセンテージを掛けるだけです。次のようにします。

var clip:MovieClip; //set this to the movie clip that has been loaded
clip.addEventListener( Event.ENTER_FRAME, this.enterFrameHandler );
var progressBar:Shape = new Shape();
var totalWidth:Number = 508;

function enterFrameHandler( e:Event ):void {
    this.progressBar.graphics.clear();
    this.progressBar.graphics.beginFill( 0x000000 );
    this.progressBar.graphics.drawRect( 0, 0, ( this.clip.currentFrame / this.clip.totalFrames ) * this.totalWidth, 10 );
    this.progressBar.graphics.endFill();
}

NetStream実際のビデオ クリップを参照している場合 (この場合、ムービー クリップを使用すると、MovieClip クラスがあるため混乱する可能性があります)、このクラスには進行イベントや合計時間プロパティがないため、少し難しくなります。グローバル変数に保存する totalTime を含む MetaData が受信されるのをリッスンする必要があります。次に、上記と同じ方法 (ムービー オブジェクトではなくコンテナー オブジェクトで ENTER_FRAME を使用) を使用して、( NetStream.time / totalTime ) * totalWidth代わりに使用することができます。

于 2013-02-14T16:24:33.137 に答える