假设我有一个像adobe illustrator(目前指的是Krita软件)的绘画程序,让我们说iI制作了5层并画了一个简单的火柴人。一层是透明帆布,两层是两条腿,三层是身体,四只手和五个头。所有这些层组合成了一个火柴人(很好)。现在我将这张图片加载到actionscript3中。但是现在让我们说我想只移动10个像素的腿而不移动身体的其他部分。我无法做到这一点,我能尽可能地将整个火柴人移动10个像素。是否有一种格式可以保存整个图像,但也会指示5个子组(子图像,子数据......称之为你想要的),如腿,身体和其他?这样做的目的是,有时我想旋转所有火柴人,但有时我想只移动像腿一样的特定部位。或者唯一的方法是制作每个身体部位的4张照片并将它们逐个加载到as3中,然后组合成1个单独的火柴人?
我希望这张照片会对你有所帮助:
答案 0 :(得分:0)
我认为最简单的方法是以PSD格式保存文件。 as3中有一个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;