Показать сообщение отдельно
Старый 23.03.2011, 21:34
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 9  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Буду рад альтернативам =)
Цитата:
resourceManager.preloadResources(callback,"mainMenu","gameTable","button1","button2");
Что здесь происходит? Здесь хардкодятся имена "mainMenu", "gameMenu" и т.д. и им в соответствие ставиться карта url(name) - а оно надо ее руками писать то?
Мы ведь обычно знаем, что:
- все начинающееся на UI лежит в ui.swf
- все начинающееся на Animation лежит в animation.swf

Делаем себе сугубо проектно-зависимый класс, в котором хардкодим наше соглашение
Код AS3:
ResourceLocation
{
     private var _mediaPath:String;
     public static init(mediaPath:String)
     {
           _mediaPath = mediaPath;
     }
    public static function getAnimationURL():String
    {
          return _mediaPath + "/" + "animation.swf";
     }
 
      public static function getUIURL():String
      {
            return _mediaPath + "/" + "ui.swf";
      }
}
можно суровее:
Код AS3:
    public static function getSwfURL(name:String):String
    {
          if (name.indexOf("Animation") == 0)
          {
                return _mediaPath + "/" + "animation.swf";
           }
           if (name.indexOf("UI") == 0)
           {
                 return _mediaPath + "/" + "ui.swf";
           }
           return null;
     }
Но во втором подходе могут быть проблемы при одноименных классах.

При первом подходе можно возвращать не url, а сразу ресурс, типизированный соответственно загружаемым данным (у которого потом вызывать load() и на который подписывать колбеки)