我目前有几个动画片段,我加载到另一个动画片段container
。我使用MovieClipLoader类加载它们并使用onLoadProgress
,onLoadStart
,onLoadInit
,onLoadComplete
和onLoadError
个侦听器。
在onLoadProgess
监听器中,我监听加载的字节和总字节数,并将百分比放入另一个动画片段(我暂时放在舞台上以显示加载)文本框。这是问题,加载movieclip开始在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");
}
有没有人有某种解释或解决方案?
答案 0 :(得分:1)
我对as2并不多,但似乎你可以在加载电影(passionPurpose)的第一帧中设置停止,所以当加载第一帧时,它只停在那里。加载完成后再播放电影。或者在onLoadStart中暂停电影(passionMovie.gotoAndStop(1);
),当它完成时(即onLoadComplete)播放它。还有一件事,你可能不需要对load_icon进行两次unloadMovie调用,要么将它放在onLoadComplete中,要么放在onLoadProgress中。
如果它不起作用,那么你可以试着让它看不见,直到它完全加载。
答案 1 :(得分:0)
正如bhups建议的那样,在加载的剪辑的第一帧上设置停止动作,或者在它们开始加载后立即停止它们。一旦加载了帧,动画片段就会自动播放,除非你不告诉它们。