Адреса картинок подгружаются из 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 }); } } }
Комментариев нет:
Отправить комментарий