Очевидно, что внедренные активы по умолчанию не были привязаны к 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();
И это все, что есть в ней.
Вложенный файл сериализуется как ByteArray, поэтому я предполагаю, что вы должны иметь возможность использовать [FileStream.writeBytes()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash /filesystem/FileStream.html#writeBytes()), чтобы записать его в файл. – RIAstar
Спасибо, но для этого мне нужно создать объект File, ссылающийся на встроенный файл, как я могу это сделать? 'new File (" ??? ")' – jroy
Просто создайте новый пустой файл и используйте FileStream для записи в этот файл. Googling «AIR write file» должен дать некоторые релевантные результаты по этой теме. – RIAstar