0

現在、別のムービークリップにロードするムービークリップがいくつかありますcontainer。MovieClipLoader クラスを使用してそれらをロードし、onLoadProgressonLoadStartonLoadInitonLoadCompleteおよびonLoadErrorリスナーを利用します。

リスナーではonLoadProgess、ロードされたバイト数と合計バイト数をリッスンし、パーセンテージを別のムービークリップ (ロードを表示するために一時的にステージに置いたもの) のテキスト ボックスに入力します。ここに問題があります。読み込み中のムービークリップが 40% の読み込みマークで再生を開始し、100% の読み込みを待機しません。これは奇妙で、何が間違っているのかわかりません。これが私のコードです:

// loading icon to show progress
var loading_icon:MovieClip = new MovieClip();

// load PassionPurpose.swf
var passionPurposeLoader = new MovieClipLoader();
var passionPurpose:MovieClip = this.container.createEmptyMovieClip("passionPurpose", this.container.getNextHighestDepth());
passionPurpose._y = groupOverviewHeight;

passionPurposeLoader.onLoadInit = function (targetMc:MovieClip) {
 trace("Init... "+PPFile);

 loading_icon._visible = false;
 loading_icon.unloadMovie();
}

passionPurposeLoader.onLoadStart = function (targetMc:MovieClip) {
 loading_icon = passionPurpose._parent.attachMovie("loading_icon_ch1","loading_icon_ch1",passionPurpose._parent.getNextHighestDepth());

 loading_icon._x = 245 - loading_icon._width/2;
 loading_icon._y = 207 - loading_icon._height/2;

 loading_icon._visible = true;
}

passionPurposeLoader.onLoadComplete = function (targetMc:MovieClip) {
 trace("Complete... "+PPFile);

 loading_icon._visible = false;
 loading_icon.unloadMovie();
}

// progress function
passionPurposeLoader.onLoadProgress = function(targetMc:MovieClip, loadedBytes:Number, totalBytes:Number) {
 // determine percentage
 var percentage:Number = Math.round(loadedBytes / totalBytes * 100);

 trace("Loading... "+loadedBytes+"/"+totalBytes+" "+PPFile);
 loading_icon.loading_txt.text = percentage + "%";

 if (loadedBytes == totalBytes) loading_icon.unloadMovie();
}

// there was an error loading the movieclip
passionPurposeLoader.onLoadError = function (targetMC, errorCode) {
 trace("Error");
}

誰かが何らかの説明や解決策を持っていますか?

4

2 に答える 2

1

私は as2 にはあまり興味がありませんが、読み込み中のムービー (passionPurpose) の最初のフレームに停止を置くことができるようです。そのため、最初のフレームが読み込まれると、そこでのみ停止します。ロードが完了したら、ムービーを再生します。または、onLoadStart でムービーを一時停止し ( passionMovie.gotoAndStop(1);)、完了したら (つまり、onLoadComplete) 再生します。もう 1 つ、おそらく onLoadComplete または onLoadProgress 内に配置して、loading_icon に 2 回 unloadMovie を呼び出す必要はありません。
うまくいかない場合は、完全に読み込まれるまで非表示にできます。

于 2009-11-02T14:22:01.267 に答える
0

bhups が提案したように、ロードされたクリップの最初のフレームに停止アクションを配置するか、ロードが開始されたらすぐに停止します。ムービークリップは、再生しないように指示しない限り、フレームが読み込まれるとすぐに自動的に再生されます。

于 2009-11-13T12:12:45.447 に答える