
Etiquetas: save() encode() FileReference JPGEncoder
Una de las novedades de Flash Player 10 fue la función save() de FileReference.
Esta clase permite guardar un archivo directamente en el ordenador del usuario, si necesidad de pasar por el servidor.
En este ejemplo, guardo una captura del stage en una imagen codificada como jpg (utilizando la clase JPGEncoder de adobe y la función save():
/** * * @param e * Para guardar: * 0. Oculto el botón de guardar para que no salga en el pantallazo * 1. Crear un Bitmapdata con el objeto que queremos guardar * 2. Crear un bitmap con ese BitmapData * 3. Crear una variable de tipo JPGEncoder(la calidad de 1 a 100) * 4. Llamar a la función encode de JPGEncoder pasando como parámetro el bitmapData * 5. Llamar a la función save() de FileReference pasando como parámetro el ByteArray del punto anterior y el nombre * con el que queremos guardar el archivo * 6. Mostrar de nuevo el botón de guardar */private function guardar(e:MouseEvent):void {
boton_guardar.visible = false;
var bitmapData:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight);
bitmapData.draw(stage);
var bitmap:Bitmap = new Bitmap(bitmapData)
var jpg:JPGEncoder = new JPGEncoder(80);
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba, 'captura.jpg');
boton_guardar.visible = true;
}