1 package net.systemeD.halcyon.mapfeatures {
3 import flash.events.Event;
4 import flash.net.URLLoader;
5 import flash.net.URLRequest;
7 import flash.system.Security;
10 import net.systemeD.halcyon.connection.*;
13 public class MapFeatures {
14 private static var instance:MapFeatures;
16 public static function getInstance():MapFeatures {
17 if ( instance == null ) {
18 instance = new MapFeatures();
19 instance.loadFeatures();
26 private var xml:XML = null;
28 protected function loadFeatures():void {
29 var request:URLRequest = new URLRequest("map_features.xml");
30 var loader:URLLoader = new URLLoader();
31 loader.addEventListener(Event.COMPLETE, onFeatureLoad);
35 private function onFeatureLoad(event:Event):void {
36 xml = new XML(URLLoader(event.target).data);
39 public function hasLoaded():Boolean {
43 public function findMatchingFeature(entity:Entity):XML {
47 for each(var feature:XML in xml.feature) {
48 // check for matching tags
49 var match:Boolean = true;
50 for each(var tag:XML in feature.tag) {
51 var entityTag:String = entity.getTag(tag.@k);
52 match = entityTag == tag.@v || (entityTag != null && tag.@v == "*");