Skip to content

Commit 77dffb4

Browse files
Source Uploaded
0 parents  commit 77dffb4

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

src/ResourceLoader.as

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package
2+
{
3+
import flash.display.Bitmap;
4+
import flash.display.BitmapData;
5+
import flash.display.Loader;
6+
import flash.events.Event;
7+
import flash.events.EventDispatcher;
8+
import flash.events.HTTPStatusEvent;
9+
import flash.events.ProgressEvent;
10+
import flash.net.URLLoader;
11+
import flash.net.URLRequest;
12+
13+
public class ResourceLoader
14+
{
15+
private var urlLoaderList:Array = new Array();
16+
private var bmpLoaderList:Array = new Array();
17+
private var urlLoader:URLLoader = new URLLoader();
18+
private var bmpLoader:Loader = new Loader();
19+
private var xml:XML = new XML();
20+
private var bitmap:Bitmap = new Bitmap();
21+
private var xmlCounter:int = 0;
22+
private var bmpCounter:int = 0;
23+
24+
private static var _instance:ResourceLoader = new ResourceLoader();
25+
26+
public static function get Instance():ResourceLoader//делаем синглетон
27+
{
28+
trace("getInstance");
29+
return _instance;
30+
}
31+
public function ResourceLoader()
32+
{
33+
trace("ResourceConstructor");
34+
if(_instance)
35+
throw new Error("Use Instance Field");
36+
}
37+
38+
public function LoadXML(URL:String):void
39+
{
40+
xmlCounter++;
41+
this.urlLoaderList[xmlCounter] = new URLLoader();
42+
this.urlLoaderList[xmlCounter].addEventListener(Event.COMPLETE,XmlLoadCompleteListener);
43+
this.urlLoaderList[xmlCounter].load(new URLRequest(URL));
44+
}
45+
private function XmlLoadCompleteListener(e:Event):void
46+
{
47+
var xml:XML = new XML(e.target.data);
48+
trace(xml);
49+
trace(xml.name());
50+
if(xml.name() == "Config")
51+
XMLParser.Instance.GameSetup(xml);
52+
else if(xml.name() == "GraphicsSet")
53+
XMLParser.Instance.GraphicsPoolSetup(xml);// заполняем пул графикой(pool)
54+
else if (xml.name() == "Level")
55+
XMLParser.Instance.LevelSetup(xml);//Заполняем коллекцию объектов(assets)
56+
else
57+
throw new Error("i do not know this");
58+
urlLoader.removeEventListener(Event.COMPLETE,XmlLoadCompleteListener);
59+
}
60+
61+
public function LoadBitmap(URL:String):void
62+
{
63+
bmpCounter++;
64+
this.bmpLoaderList[bmpCounter] = new Loader();
65+
this.bmpLoaderList[bmpCounter].contentLoaderInfo.addEventListener(Event.INIT,BitmapLoaderInitListener);
66+
this.bmpLoaderList[bmpCounter].load(new URLRequest(URL));
67+
}
68+
69+
private function BitmapLoaderInitListener(e:Event):void
70+
{
71+
72+
trace("IN BITMAP LOADER");
73+
var content:GameGraphics = new GameGraphics;
74+
content.bitmap = Bitmap(e.target.content);
75+
content.type = e.target.url;
76+
GraphicsPool.Instance.Graphics.push(content);
77+
if(GraphicsPool.Instance.Graphics.length == bmpCounter)
78+
GameObjectPool.Instance.ApplyBitmapData();
79+
}
80+
}
81+
}

0 commit comments

Comments
 (0)