CameraRoll addBitmapData()到文件夹

时间:2013-03-08 08:45:05

标签: actionscript-3 flex air

我知道使用AIR AS3 CameraRoll addBitmapData()我可以将拍摄的图像存储到设备的专用媒体库中。

现在的问题是:有没有办法为我的应用创建一个单独的可浏览文件夹,以便使用该方法添加图像?或者还有其他方法可以将我想要存储的图像与其他图像分开存放吗?

编辑:所以这就是我最终完成它的方式:

var imageFile:File = File.documentsDirectory.resolvePath("DCIM/yourfolder/");
if(!imageFile.exists) imageFile.createDirectory();
imageFile = imageFile.resolvePath("yourfile.jpg");

var fileStream:FileStream = new FileStream();
fileStream.open(imageFile, FileMode.WRITE);
fileStream.writeBytes(byteArray);
fileStream.close();

1 个答案:

答案 0 :(得分:1)

AIR将允许您访问本地文件系统。您可以使用具有一系列特定于空中参数的flash本机File类,以允许在没有对话框的情况下保存和移动文件,并且具有更少的安全限制。标准的save功能可以在没有空气的情况下工作,但坚持使用对话框。

此处的官方文件: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html

我已经在我写的一个旧照片展位应用程序中实现了这个...我会尝试挖掘它并发布我拥有的内容。

编辑:

首先,图书馆如下:

adobe.air.filesystem.*;
adobe.air.filesystem.events.*;

这是AIR工具的样子:

function saveMyFile(){

var imgFile:String 
// however you define your filename;
var f:File=File.desktopDirectory.resolvePath("myfolder/" + imgFile); 
//defines the directory, attaches the filename
var s:FileStream=new FileStream();
//creates the filestream

s.open(f, FileMode.WRITE);
s.writeBytes(jpgStream); 
// in this case jpgStream was bitmapData var compiled from a screenshot
s.close();
}

我只需要导航到桌面上的文件夹,但我确信有更彻底的方法可以挖掘。