Вы можете попробовать использовать ViewStack
и Timer
для перебора его дочерних элементов. Просто добавьте к ним эффект постепенного появления / исчезновения, и вы получите то, что искали.
Примерно так:
<?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
Image
компонентов.
- Установите свойство
alpha
обоих
их до 0
- Загрузите картинку в первую, затем
сыграть эффект затухания
- Начните загружать следующую картинку
во втором
Image
компоненте
- Исчезать первый, исчезать в
во-вторых, и загрузить следующее
картинка в первом изображении и т. д.
Таким образом, вы получаете только один Контейнер (вместо одного на изображение плюс ViewStack) и 2 Изображения.
Также вам будет легче очистить их из памяти, если вам нужно.