1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // ResourceManager.js
- // For Resource Loading and management
- // FZ, Copyright (c) 2010 Zlongames
- (function()
- {
-
- FZ.ResourceManager = {
- __ResourceCount:0,
- __ResourceLoaded:0,
- __GeneralCallback:null,
- __GeneralCallbackObj:null,
- ResourceLib:{},
- isResourceLoaded:function(){ return this.__ResourceCount === this.__ResourceLoaded;},
- // resourceDesc:
- // {Name: xxxx, Type: xxxx, URL: xxxx, callback: callback function}
- //
- addResource:function (resourceDesc)
- {
- if (this.ResourceFactory.hasOwnProperty(resourceDesc.Type))
- {
- this.__ResourceCount ++;
- var _resource =
- {
- Resource : null,
- Loaded: false
- };
- this.ResourceLib[resourceDesc.Name] = _resource;
- FZ._trace("Add/load resource[" + resourceDesc.Name + "] : "+ resourceDesc.URL);
- var _resourceLoader = new this.ResourceFactory[resourceDesc.Type](resourceDesc.URL, _resource);
- _resourceLoader.setCallback(function()
- {
- _resource.Loaded = true;
- FZ.ResourceManager.__ResourceLoaded++;
- if (resourceDesc.callback) resourceDesc.callback(_resource.Resource);
- if (FZ.ResourceManager.__GeneralCallback) FZ.ResourceManager.__GeneralCallback.call();
- });
- _resourceLoader.load();
- }
- else
- Throw("Error: Do not suppport Resourcetype:"+ resourceDesc.Type);
- },
- setCallback:function(callbackFunc)
- {
- this.__GeneralCallback = callbackFunc;
- },
- getLoadingRatio:function()
- {
- if (this.__ResourceCount === 0) return 1;
- return this.__ResourceLoaded/this.__ResourceCount;
- },
- ResourceFactory:{},
- registerResourceType:function (Typename, ResourceClass)
- {
- this.ResourceFactory[Typename] = ResourceClass;
- }
- };
- // General Resource
- FZ.Class_Resource=
- {
- callback:function(){},
- init:function(URL, target) { this.URL = URL; this.target = target;},
- setCallback:function(callback) {this.callback = callback;}
- };
- })();
|