Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.utils.*;
- import org.flixel.*;
- import org.flashdevelop.utils.FlashConnect;
- public class ItemRegistry
- {
- [Embed(source = 'Items.xml', mimeType = "application/octet-stream")] private var xmlData:Class;
- private var byteArray:ByteArray;
- private var xml:XML = new XML();
- private var store:Dictionary = new Dictionary()
- private var warnings:Dictionary = new Dictionary();
- public function ItemRegistry()
- {
- byteArray = new xmlData as ByteArray;
- xml = new XML(byteArray);
- var itemList:XMLList = xml.item;
- for each(var item:XML in itemList) {
- //FlashConnect.trace(item.@name);
- registerClass(new TestItem(), item);
- }
- }
- public function registerClass($class:Item, item:XML):void
- {
- FlashConnect.trace("registering " + $class + " at " + item.@name);
- if (item.@name in store)
- {
- FlashConnect.trace("warning, key overlap, class " + store[item.@name] + " will be replaced with " + $class);
- }
- $class.name = item.@name;
- $class.color = item.@color;
- store[$class.name] = $class;
- }
- public function getClass($key:String):Class
- {
- if ($key in store) return store[$key];
- else if (!warnings[$key])
- {
- FlashConnect.trace(this + " WARNING : [" + $key + "] not registered with a class, call registerClass first");
- warnings[$key] = true;
- }
- return null;
- }
- public function hasClass($key:String):Boolean
- {
- if ($key in store) return true;
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement