Адреса картинок подгружаются из XML.
Создаем новый AS3 Project.
В папке bin создаем папку images и в нее помещаем изображения 01.jpg, 02.jpg, 03.jpg.
В папке bin cоздаем новый XML-файл: LoadingData.xml.
<?xml version="1.0" encoding="utf-8" ?> <images> <image>01.jpg</image> <image>02.jpg</image> <image>03.jpg</image> </images>
loadXml() - загрузка XML
xmlLoaded() - обработка загруженного XML и запуск слайдшоу
switchImage() - загрузка изображения
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import caurina.transitions.Tweener;
import flash.display.Loader;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class Main extends Sprite
{
private var imgPath:String = "images/";
private var currentImage:int=0;
private var imageLoader:Loader;
private var imageBitmap:Bitmap;
private var imageBitmapData:BitmapData;
private var imageTimer:Timer;
private var imageTween:Tweener;
private var dataXML:XML;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
loadXml();
}
private function loadXml():void {
var xmlURL:URLRequest = new URLRequest("LoadingData.xml");
var xmlLoader:URLLoader = new URLLoader(xmlURL);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
}
private function xmlLoaded(event:Event):void {
dataXML = XML(event.target.data);
currentImage = dataXML.images.image.length()-1;
imageLoader = new Loader();
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
this.addChild(imageLoader);
imageBitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
imageBitmap = new Bitmap();
this.addChild(imageBitmap);
switchImage(new TimerEvent(TimerEvent.TIMER));
imageTimer = new Timer(6000);
imageTimer.addEventListener(TimerEvent.TIMER, switchImage);
imageTimer.start();
}
private function switchImage(e:TimerEvent):void {
imageBitmapData.draw(this);
imageBitmap.bitmapData = imageBitmapData;
imageBitmap.alpha = 1;
if (currentImage < dataXML.frames.frame.length() - 1) {
currentImage++;
}else {
currentImage = 0;
}
imageLoader.load(new URLRequest(imgPath + dataXML.images.image[currentImage]));
}
private function imageLoaded(e:Event):void {
Tweener.addTween (imageBitmap, { alpha:0,time:2 });
}
}
}
Комментариев нет:
Отправить комментарий