1

プロジェクトの「assets」フォルダーに埋め込んだ画像をFile.applicationStorageDirectoryの場所にコピーする必要がありますが、その方法がわかりません(実際、ファイルを使用して埋め込まれたファイルにアクセスする方法がわかりません)。オブジェクトインスタンス)..。

助言がありますか ?

4

1 に答える 1

0

コメントで提案したように、埋め込まれたアセットはデフォルトではByteArrayにシリアル化されていないようです。たとえば、画像はBitmapAssetクラスにシリアル化されます。

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

この埋め込みでは、次のことができます。

var bmp:BitmapAsset = new MyImage();

そのBitmapAssetをByteArrayに変換する手法はありますが、より簡単な方法もあります。embedディレクティブでタイプを「octetstream」に設定すると、ByteArrayのサブクラスであるByteArrayAssetクラスにすぐにシリアル化されます。だからあなたはすることができます:

[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();

そして、それがすべてです。

于 2012-04-18T15:39:35.387 に答える