2012-04-18 2 views
1

Мне нужно скопировать некоторые изображения, которые я вложил в папку «assets» моего проекта, в папку File.applicationStorageDirectory, но я понятия не имею, как это сделать (на самом деле Я не знаю, как получить доступ к встроенному файлу с экземпляром объекта File) ...Копирование встроенного файла из «активов» в File.applicationStorageDirectory

Любые предложения?

+0

Вложенный файл сериализуется как ByteArray, поэтому я предполагаю, что вы должны иметь возможность использовать [FileStream.writeBytes()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash /filesystem/FileStream.html#writeBytes()), чтобы записать его в файл. – RIAstar

+0

Спасибо, но для этого мне нужно создать объект File, ссылающийся на встроенный файл, как я могу это сделать? 'new File (" ??? ")' – jroy

+0

Просто создайте новый пустой файл и используйте FileStream для записи в этот файл. Googling «AIR write file» должен дать некоторые релевантные результаты по этой теме. – RIAstar

ответ

0

Очевидно, что внедренные активы по умолчанию не были привязаны к ByteArray, как я предложил в комментариях. Например, изображение сериализуется в класс BitmapAsset.

[Embed(source="sourceImg.png")] 
private var MyImage:Class; 

Для этого врезать вы могли бы сделать:

var bmp:BitmapAsset = new MyImage(); 

Есть методы преобразования, которые BitmapAsset в ByteArray, но есть и более простой способ: если вы установите тип в «octetstream» в embed директива, он сериализуется в класс ByteArrayAsset немедленно, что является подклассом ByteArray. Так что вы можете сделать:

[Embed(source="sourceImg.png", mimeType="application/octet-stream")] 
private var MyImage:Class; 

var bytes:ByteArray = new MyImage(); 

Теперь все, что вам нужно сделать, это написать, что ByteArray на диске с помощью FileStream:

var file:File = File.desktopDirectory.resolvePath('targetImage.png'); 
var fs:FileStream = new FileStream(); 
fs.open(file, FileMode.WRITE); 
fs.writeBytes(bytes); 
fs.close(); 

И это все, что есть в ней.

+0

Отлично! Это именно то, что я искал, спасибо! – jroy

Смежные вопросы