Формат изображения с подизображениями или слоями
Допустим, у меня есть программа для рисования, такая как Adobe Illustrator (в настоящее время относится к программному обеспечению Krita), и, скажем, я сделал 5 слоев и нарисовал простой стикман. Один слой - прозрачный холст, два - две ноги, три - тело, четыре руки и пять голов. Все эти слои, вместе взятые, сделали крупье (это нормально). Теперь я загружаю эту картинку в actionscript3. Но теперь давайте скажем, что я хочу двигать только ноги на 10 пикселей, не двигая остальную часть тела. Я не смогу сделать это, максимум, что я могу, это переместить весь крупье на 10 пикселей. Есть ли формат, который сохранит все изображение, но также укажет 5 подгрупп (подизображения, подданные.... назовите это как хотите), такие как ноги, тело и другие? Цель этого состоит в том, что иногда я хочу вращать всех крупье, но иногда я хочу перемещать только определенную часть, такую как ноги. Или единственный способ состоит в том, чтобы сделать 4 снимка каждой части тела и загрузить их 1 на 1 в as3, а затем объединить в 1 отдельную ручку?
Надеюсь, эта картина вам немного поможет:
1 ответ
Я думаю, что самый простой способ - сохранить файл в формате PSD. Для вас в PS3 есть парсер PSD: https://github.com/warrenseine/as3-psd-parser/
var psdParser :PSDParser = PSDParser.getInstance();
psdParser.parse(file.data);
var layersLevel :Sprite = new Sprite();
var arr:Array = new Array();
for (var i : Number = 0;i < psdParser.allLayers.length; i++) {
var psdLayerm :PSDLayer = psdParser.allLayers[i];
var layerBitmap_bmp :BitmapData = psdLayer.bmp;
var layerBitmap :Bitmap = new Bitmap(layerBitmap_bmp);
layerBitmap.x = psdLayer.position.x;
layerBitmap.y = psdLayer.position.y;
layerBitmap.filters = psdLayer.filters_arr;
layersLevel.addChild(layerBitmap);
arr.push(layerBitmap);
}
// Move legs
arr[0].x += 10;