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