2010-03-22 67 views
0

我正在使用flex,並且需要對幾張圖片進行排序。我可以在每張圖片下添加一些文字。我想要做的是自動對這些圖像進行排序,以便在每張圖像和下一張圖像之間短暫地出現黑色漸變效果 - 確保您之前已經看到過這種情況。通過幾個圖像進行排序

我的問題是這樣的:

  • 應該將這些圖像被視爲一個組件,還是什麼狀態?我打算這樣,但更正是歡迎
  • 如何獲得圖像和下一個之間的黑色衰落效果。任何線索

更新:找到它的一個例子。這個例子有更多的元素,但想法是一樣的,一個圖像淡入淡出,另一個圖像加載。

http://www.lifeblue.com/flash/lb_banner.swf

回答

0

您可以嘗試使用一個ViewStackTimer通過其子迭代。只需在它們上添加淡入/淡出效果,即可獲得所需的信息。
類似的東西:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="black" creationComplete="creationCompleteHandler"> 

    <mx:Script> 
     <![CDATA[ 
      private var timer:Timer; 

      private function creationCompleteHandler():void 
      { 
       timer = new Timer(2000); 
       timer.addEventListener(TimerEvent.TIMER, timerHandler); 
       timer.start(); 
      } 

      private function timerHandler(e:TimerEvent):void 
      { 
       if(vs.selectedIndex == vs.getChildren().length - 1) 
        vs.selectedIndex = 0; 
       else 
        vs.selectedIndex++; 
      } 
     ]]> 
    </mx:Script> 

    <mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="500" effectEnd="timer.start();"/> 
    <mx:Fade id="fadeOut" alphaFrom="1" alphaTo="0" duration="500" effectEnd="timer.stop();"/> 

    <mx:ViewStack id="vs"> 
     <mx:Canvas showEffect="fadeIn" hideEffect="fadeOut"> 
      <mx:Image source="picture1.jpg"/> 
     </mx:Canvas> 
     <mx:Canvas showEffect="fadeIn" hideEffect="fadeOut"> 
      <mx:Image source="picture2.jpg"/> 
     </mx:Canvas> 
     <mx:Canvas showEffect="fadeIn" hideEffect="fadeOut"> 
      <mx:Image source="picture3.jpg"/> 
     </mx:Canvas> 
    </mx:ViewStack> 

</mx:Application> 




請注意,此代碼不是最優化的一個。最好的做法是創建一個具有黑色背景和2個組件的自定義組件。

  • 設置兩個 他們的alpha屬性設置爲0
  • 負載中的第一個畫面,然後 實際上
  • 播放淡入開始裝載下面的圖片 第二Image分量
  • 淡出第一張,淡入 秒,並在第一張圖片中加載以下 圖片等

這樣你只有一個容器(而不是每張圖片加上ViewStack)和2個圖像。
如果需要,從內存中清理它們也會更容易。