![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
package { import flash.display.Bitmap; import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IEventDispatcher; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.URLRequest; public class Main extends Sprite { private var _paths:Vector.<URLRequest>; private var _images:Vector.<Bitmap>; private var _loader:Loader; private var _id:uint; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var xml:Array = ['button-in.png', 'button-out.png']; _id = 0; _paths = new Vector.<URLRequest>([]); var length:int = xml.length; for (var i:int = 0; i < length; i++) { _paths.push(new URLRequest(xml[i])); } _images = new Vector.<Bitmap>([]); _loader = new Loader(); this.addListener(_loader.contentLoaderInfo); this.addLoaded(_paths[0]); } private function addLoaded(url:URLRequest):void { try { _loader.load(url); } catch (error:Error) { trace(error.message); } } private function addListener(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, dispatcher_completeHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, dispatcher_ioErrorHandler); trace("###Слушатели - добавлены"); } private function removeListener(dispatcher:IEventDispatcher):void { dispatcher.removeEventListener(Event.COMPLETE, dispatcher_completeHandler); dispatcher.removeEventListener(IOErrorEvent.IO_ERROR, dispatcher_ioErrorHandler); _loader = null; trace("###Слушатели - удалены"); } private function dispatcher_ioErrorHandler(event:IOErrorEvent):void { trace(event.errorID); } private function dispatcher_completeHandler(event:Event):void { var bitmap:Bitmap = event.target.content as Bitmap; _images[_id] = bitmap; _id++; _paths.shift(); if (_paths.length) this.addLoaded(_paths[0]); else this.removeListener(_loader.contentLoaderInfo); } } } |
|
|||||
|
[+4 06.05.14]
|
У меня чуть попроще было
package com.in4core.loaders { import flash.display.Loader; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.net.URLRequest; /** * ... * @author in4core * // Class for Loading multi images for Air */ public class CustomMultiLoader extends EventDispatcher { private var _imageArray:Array = []; private var _loader:Loader = new Loader(); private var _images:Array = []; private var _index:int = 0; public function CustomMultiLoader():void { super(); } public function add(imagePath:String):void { var req:URLRequest = new URLRequest(imagePath); _imageArray.push(req); } public function load():void { if (_imageArray == null) return; if (_index == _imageArray.length ) { dispatchEvent(new CustomMultiLoaderEvents(CustomMultiLoaderEvents.LOADED , content)); _imageArray = []; _index = 0; _images = []; return; } _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE , loadComp); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR , onError); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE , loadComp); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR , onError); _loader.load(_imageArray[_index]); _index++; } private function onError(e:IOErrorEvent):void { _imageArray = []; _index = 0; _images = []; dispatchEvent(new CustomMultiLoaderEvents(CustomMultiLoaderEvents.ERROR,[])); } private function loadComp(e:Event):void { _images.push(e.currentTarget.content); load(); } private function get content():Array { return _images; } } }
__________________
Марк Tween |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 247
|
С двух предоставленных примеров слепил под себя код, и все получилось.
Спасибо udaaff Akopalipsis in4core |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|