ImageAtlas. Класс для работы с картами спрайтов

Суть:

Класс для удобной работы с множеством изображений. Вместо прикрепления большого количества изображений через embed или сборки swc/swf с графикой, используется карта спрайтов(png+xml). Аналог класса TextureAtlas из Starling Framework. Доступ к изображением происходит по имени файла нужного изображения.

Как использовать:

  • Создаём атлас для Startling/Sparrow через TexturePacker. Формат графики — png, Size: Any size(не обязательно), параметры Rotation и Trim mode нужно отключить.
  • Подключаем полученные файлы png и xml через embed или загружем через Loader/URLLoader.
  • Создаём экземпляр класса, в конструктор передаёт битмапдату и xml:

var atlas:ImageAtlas = new ImageAtlas(atlasBitmapData, atlasXML);

  •  Далее можно получать нужный тип данных через соответствующие методы: getBitmapDatagetBitmapgetSpritegetShape. Думаю, имена методов говорят сами за себя. В параметры передаётся имя нужного файла изображения (можно подсмотреть в xml). При вызове любого из этих методов создаётся BitmapData нужного изображения, а затем, в зависимости от вызванного метода возвращается  либо сама битмапдата, либо битмап с этой битмапдатой, либо спрайт с битмапом, либо Shape, в который отрисована битмапдата. В любом случае все битмапдаты кэшируются, то есть при повторном обращении к битмапдате она не создаётся заново, а используется уже созданная, не важно, через какой из перечисленных методов.
  • Когда атлас больше не нужен, его нужно очистить через метод dispose.

Есть у данного класса один явный минус — общая битмапдата атласа всегда находится в памяти, но для проектов под пк в большинстве случаев это не критично.

Для уменьшения веса swf можно пережать png, например через PNGGauntlet.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *