2009-11-02 34 views
0

我目前有幾個movieclip,我加載到另一個movieclip container。我使用MovieClipLoader類來加載它們並使用onLoadProgressonLoadStart,onLoadInit,onLoadCompleteonLoadError聽衆。Flash MovieClipLoader實例行爲不正確

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"); 
} 

有沒有人有某種解釋或解決方案?

回答

1

我沒有太多的as2,但它似乎可以停止加載電影(passionPurpose)的第一幀,所以當第一幀加載時,它只停在那裏。當加載完成後再播放電影。或onLoadStart只是暫停電影(passionMovie.gotoAndStop(1);),並在它完成(即onLoadComplete)播放它。還有一件事,你可能不需要兩次load_icon的unloadMovie調用,要麼將它放在onLoadComplete中,要麼放在onLoadProgress中。
如果它不起作用,那麼你可以嘗試使它看不見,直到它完全加載。

0

正如bhups建議的那樣,對已加載剪輯的第一幀進行停止操作,或者在開始加載後立即停止它們。除非您告訴他們不要,否則只要加載了框架,MovieClip就會自動播放。