2010-08-16 72 views
0

我正在使用加載程序AS3.0加載外部圖像。我需要每次加載一張隨機圖像,並在5秒左右之後使用計時器加載新圖像。當我打開第一個形象,我叫......使用ActionScript 3.0加載外部圖像然後淡入淡出...?

myMovieClip.addChild(loader); 

我第一次通話後...

if (myMovieClip.numChildren > 0) { 
    myMovieClip.addChildAt(loader, 1); 
} 

所以,這應該加上後面的第一個新加載的圖像.. 。這似乎是工作...

我想要做的下一步是在這兩個剪輯之間淡入淡出,所以前面的一個淡出幾秒鐘,然後最終被刪除時,它是不可見的。幾秒鐘後,我加載下一個並重復該過程。

目前,我啓動一個定時器,當它激發我做到這一點...

if (Loader(myMovieClip.getChildAt(0)).content.alpha <= 0) 
{ 
    // Check if the alpha value is 0...if so, remove the image and stop the timer 
    myMovieClip.removeChildAt(0); 
    timer.stop(); 
} 
else 
{ 
    // Increase transparency 
    Loader(myMovieClip.getChildAt(0)).content.alpha -= 0.1; 
} 

的問題是,我的衰落常規不起作用。加載一個圖像,下一個圖像在完成加載後立即顯示。

我的代碼感覺像是一個黑客...有沒有更好的方式,實際上工作...?

回答

2

幾個指針。

在添加圖片之前,請確保其alpha值等於0,否則您的圖片將立即顯示。

福克斯是正確的,你可以使用一個類來處理褪色或你的圖像,即圖像的alpha屬性的補間。我個人更喜歡使用TweenMax或TweenLite(greensock.com),但是有很多不同的類可以很好地處理這個問題。

您可以使用補間類的onComplete事件在圖像不再可見時將其刪除。

你必須確保下一張圖片在開始淡入淡出之前被加載,所以我建議在加載前一個圖片後立即調用下一張圖片,並在開始淡入淡出之前檢查布爾值。

+1

+1。對於補間,我建議使用eaze:http://code.google.com/p/eaze-tween/ – back2dos 2010-08-16 13:56:40

+0

還沒有嘗試過那個:) thx! – PatrickS 2010-08-16 14:28:05

+0

我第二個TweenLite。 onComplete事件正是需要的。 – knuckfubuck 2010-08-17 00:59:14