хорошей идеей было бы создание внешних SWF-файлов, встраивающих изображения, которые, вероятно, будут использоваться вместе, если это вообще возможно ... что-то вроде projectiles.swf, ta .SWF .... я не знаю ... что-то, что имеет смысл ... может быть, разделить активы по уровням, или что-то ... взять простой интерфейс, который позволяет извлекать активы из SWF ... для Например, пусть всегда будет класс Assets
со статическим методом getAll
, который возвращает Object, сопоставляя строковые идентификаторы с соответствующими классами, так что вы получите что-то вроде:
function onComplete(e:Event) {//this is the handler for the loading operation
var map:Object = (e.target as LoaderInfo).applicationDomain.getDefinition("Assets").getAll();//should return something like {"bullet1":Bullet1,"bullet2":Bullet2,...}
//do whatever you need to do with it
}
Преимущества:
- изображения сжимаются одно против другого, поэтому общий размер файла будет уменьшен ...
- Вы резко уменьшаете количество запросов на своем сервере ...
- вы не получите n-сто файлов, следуя некоторым соглашениям об именах и путях, или даже нет (также вам нужно где-то иметь индекс файла, чтобы знать, какие файлы существуют, а какие нет). ..
- вы можете легко перекомпоновать ваше приложение, загрузив другой SWF, вместо того, чтобы загружать n-сто изображений отдельно ...
- конечным преимуществом этого подхода является то, что у вас будут классы, которые вы можете просто создать, вместо того, чтобы загружать изображения снова и снова ... первая операция является синхронной, последняя - нет ... если вы действительно нужно сделать это, рассмотреть возможность загрузки изображения в двоичном виде в
ByteArray
с использованием URLLoader
, а затем получить его на сцене с Loader::loadBytes
...
вы можете сгенерировать swfs на стороне сервера, используя swfmill, для автоматизации процесса ...
Greetz
back2dos