0

我目前有一些影片剪辑,我将它们加载到另一个影片剪辑container中。我使用 MovieClipLoader 类来加载它们并使用onLoadProgressonLoadStartonLoadInit和侦听器。onLoadCompleteonLoadError

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)播放它。还有一件事,您可能不需要对 loading_icon 进行两次 unloadMovie 调用,将其放入 onLoadComplete 或放入 onLoadProgress。
如果它不起作用,那么您可以尝试使其不可见,直到它完全加载。

于 2009-11-02T14:22:01.267 回答
0

正如 bhups 建议的那样,在加载的剪辑的第一帧上放置一个停止动作,或者在它们开始加载时立即停止它们。加载帧后,影片剪辑将自动播放,除非您告诉他们不要这样做。

于 2009-11-13T12:12:45.447 回答