classes

DynamicResourceManager.as

Stiahnuť DynamicResourceManager.as

package sk.yoz.resources
{
    import flash.events.Event;
    
    import mx.events.PropertyChangeEvent;
    import mx.resources.IResourceManager;
    import mx.resources.ResourceManager;
    
    import sk.yoz.utils.BindableDynamics;
    
    [Bindable(event="propertyChange")]
    public dynamic class DynamicResourceManager extends BindableDynamics
    {
        private static const EVENT_PROPERTY_CHANGE:String = "propertyChange";
        private static const EVENT_DYNAMIC_PROPERTY_CHANGE:String = 
            "dynamicPropertyChange";
        
        protected var _bundleName:String;
        protected var _resourceManager:IResourceManager;
        
        public function DynamicResourceManager(bundleName:String)
        {
            super();
            _bundleName = bundleName;
            _resourceManager = ResourceManager.getInstance();
            _resourceManager.addEventListener(Event.CHANGE, onResourceManagerChange);
        }
        
        protected function onResourceManagerChange(event:Event):void
        {
            dispatchEvent(new Event(EVENT_PROPERTY_CHANGE));
            dispatchEvent(new Event(EVENT_DYNAMIC_PROPERTY_CHANGE));
        }
        
        [Bindable(event="dynamicPropertyChange")]
        override public function getDynamicProperty(name:*):*
        {
            return _resourceManager.getString(_bundleName, name);
        }
    }
}