Цитата:
Буду рад альтернативам =)
|
Цитата:
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() и на который подписывать колбеки)