Привет, при вызове метода loader () непосредственно в конструкторе вылетает такая ошибка:
Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.Loader;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLRequest;
import GameEvents;
public class ResourceManager extends EventDispatcher
{
private static var _instance:ResourceManager;
private var _graphics:Array = [];
private var _XMLs:Array = [];
private var _loader:Loader;
private var _bitmap:Bitmap;
private var _xml:XML;
private var _count:int = 0;
public function ResourceManager()
{
trace("initialized")
loader ();
}
public static function get instance ():ResourceManager
{
if (!_instance) {_instance = new ResourceManager (); }
return _instance
}
private function loader ():void
{
_loader = new Loader ();
_loader.load (new URLRequest ("*/*/*/sprite.png"));
_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, onComplete);
}
private function onComplete (e:Event):void
{
if (_count == 0)
{
_bitmap = Bitmap (e.target.content);
_graphics.push (_bitmap);
}
else if (_count == 1)
{
_xml = XML (e.target.data)
_XMLs.push (_xml)
dispatchEvent(new GameEvents(GameEvents.COMPLETE_RESOURСE, true, false));
_loader.contentLoaderInfo.removeEventListener (Event.COMPLETE, onComplete);
return;
}
_count++;
_loader.load (new URLRequest("*/*/*/sprites.xml"));
}
public function getGraph ():Bitmap
{
var _bitmaps:Bitmap = _graphics [0];
return _bitmaps
}
public function getXML ():XML
{
var _xml:XML = _XMLs [0];
return _xml;
}
}
}
Main class:
Код AS3:
package
{
import starling.display.Sprite;
import starling.events.Event;
import starling.events.TouchEvent;
import starling.events.Touch;
import starling.events.TouchPhase;
import starling.core.Starling;
import GameEvents;
import ResourceManager;
public class Main extends Sprite
{
public function Main ()
{
this.addEventListener(starling.events.Event.ADDED_TO_STAGE, init);
}
private function init (e:starling.events.Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, init);
ResourceManager.instance; // ошибка
this.addEventListener (GameEvents.COMPLETE_RESOURСE, init_res)
}
private function init_res (e:GameEvents):void
{
trace ("resources completed")
}
}
}
Нашел я ошибку, Loader загружает только отображаемые объекты , грузить .xml пришлось URLloader'ом.