
Код AS3:
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);
}
}
}