0

假设我有一个像adobe illustrator这样的绘画程序(目前指的是Krita软件),假设我做了5层并画了一个简单的火柴人。一层是透明画布,二是两条腿,三层是身体,四手五头。所有这些层结合在一起就形成了一个火柴人(很好)。现在我将这张图片加载到 actionscript3 中。但是现在假设我只想将腿移动 10 像素而不移动身体的其他部分。我无法做到这一点,我最多只能将整个火柴人移动 10 像素。是否有一种格式可以保存整个图像,但也可以指示 5 个子组(子图像、子数据......称之为你想要的),比如腿、身体和其他?这样做的目标是有时我想旋转所有火柴人,但有时我只想移动特定的部分,比如腿。

希望这张图对你有一点帮助:

https://gyazo.com/ad6de45fdfdfc90b17b49db3c293c13b

4

1 回答 1

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;
于 2016-10-14T08:02:01.003 回答