1     /**
2      * ...
3      * @author Matthew Casperson
4      */
5
6     package ;
7 8 import sandy.core.scenegraph.Group;
9 import sandy.events.SandyEvent;
10 import sandy.parser.ColladaParser;
11 import sandy.parser.IParser;
12 import sandy.parser.MD2Parser;
13 import sandy.parser.Parser;
14 import sandy.parser.AParser;
15 import sandy.parser.ParserEvent;
16 17 class ResourceManager
18 {
19 public static var instance:ResourceManager = null;
20 21 public var fighter:Group;
22 23 private var engineManager:EngineManager;
24 private var resourceCount:Int;
25 private var successCount:Int;
26 private var failureCount:Int;
27 28 public function new(engineManager:EngineManager)
29 {
30 ResourceManager.instance = this;
31 32 this.engineManager = engineManager;
33 successCount = 0;
34 failureCount = 0;
35 resourceCount = 1;
36 37 var parser:ColladaParser = Parser.create("fighter.dae", Parser.COLLADA );
38 parser.addEventListener( ParserEvent.FAIL, function(event:ParserEvent) {ResourceManager.instance.updateLoadCount(false);});
39 parser.addEventListener( ParserEvent.INIT, function(event:ParserEvent) {ResourceManager.instance.fighter = event.group; ResourceManager.instance.updateLoadCount(true);});
40 try { parser.parse(); } catch (e:Dynamic) { updateLoadCount(false);}
41 }
42 43 public function updateLoadCount(success:Bool):Void
44 {
45 success ? successCount += 1 : failureCount += 1;
46 if (successCount == resourceCount)
47 {
48 this.engineManager.resourcesLoaded();
49 }
50 else if (successCount + failureCount == resourceCount)
51 {
52 this.engineManager.resourceLoadError();
53 }
54 }
55 56 }
Top