Показать сообщение отдельно
Старый 10.04.2012, 14:33
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Накидаю возможный пример (если синглтон):

Код AS3:
public class BaseImage extends Sprite{
   public function BaseImage(uri:String = ""){
        if(uri) this.uri = uri;
   }
 
   public function set uri(s:String):void{
        ResourseManager.instanse.getResourse(s, _onImageReceived);
   }
 
   private function _onImageReceived(image:*):void{
        if(image is BitmapData){
            addChild(new Bitmap(image as BitmapData));
        }else{
             addChild(image);
        }
   }
}
Тут вроде бы всё ок, так как доступ скрыт в отдельном компоненте. Однако ResourseManager не только скармливает, но и кушает:

Код AS3:
public class UIProvider implements IResourseProvider{
 
     [Embed(source="example.png")]
     public var example:Class;
 
     public function UIProvider(){
          ResourseManager.instanse.registerNamespace("ui", this);
     }
 
     public function getResourse(urn:String, callback):void{
          callback(new (this[urn] as Class)());
     }
}
Вот такой пример мне нравится гораздо меньше, так как классы такого типа могут находится в различных модулях приложения. Получается что все эти модули должны будут иметь ссылку на модуль в котором лежит ResourseManager, что мне и не нравится. Не говоря уже о том, что все они 100% работают с конкретной релизацией, а не с интерфейсом.

Добавлено через 2 минуты
Цитата:
вы хотите глобальный доступ без глобального доступа.
Что то вроде этого
__________________
ranga