我需要将我嵌入项目“assets”文件夹中的一些图像复制到File.applicationStorageDirectory位置,但我不知道如何操作(实际上我不知道如何访问嵌入式文件使用File对象实例)...
有什么建议吗?
答案 0 :(得分:0)
根据我在评论中的建议,显然嵌入式资产默认不会序列化为ByteArray。例如,图像被序列化为BitmapAsset类。
[Embed(source="sourceImg.png")]
private var MyImage:Class;
对于这个嵌入你可以这样做:
var bmp:BitmapAsset = new MyImage();
有一些技术可以将BitmapAsset转换为ByteArray,但也有一种更简单的方法:如果在embed指令中将类型设置为'octetstream',它会立即序列化为ByteArrayAsset类,这是ByteArray的子类。所以你可以这样做:
[Embed(source="sourceImg.png", mimeType="application/octet-stream")]
private var MyImage:Class;
var bytes:ByteArray = new MyImage();
现在您需要做的就是使用FileStream将ByteArray写入磁盘:
var file:File = File.desktopDirectory.resolvePath('targetImage.png');
var fs:FileStream = new FileStream();
fs.open(file, FileMode.WRITE);
fs.writeBytes(bytes);
fs.close();
这就是它的全部内容。