我需要将我嵌入项目的“assets”文件夹中的一些图像复制到 File.applicationStorageDirectory 位置,但我不知道该怎么做(实际上我不知道如何使用 File 访问嵌入的文件对象实例)...
有什么建议么 ?
我需要将我嵌入项目的“assets”文件夹中的一些图像复制到 File.applicationStorageDirectory 位置,但我不知道该怎么做(实际上我不知道如何使用 File 访问嵌入的文件对象实例)...
有什么建议么 ?
正如我在评论中建议的那样,显然嵌入式资产默认情况下不会序列化为 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();
这就是它的全部。