
Etiquetas: PNGEncoder Base64 BitmapData Rectangle encodeByteArray
/////////////////////////////////////////////////////////////////////////CLASESimport flash.display.Graphics;
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.sendToURL;
//Importo la clase PNGEncoder, que se va a encargar de codificar el Bitmap a PNGimport com.adobe.images.PNGEncoder;
//Importo la clase Base64, que va a pasar el ByteArray creado por PNGEncoder a un //código BASE64 que posteriormente interpretará el PHPimport com.dynamicflash.util.Base64;
/////////////////////////////////////////////////////////////////////////VARIABLES//Url del archivo PHP que va a codificar la imagenvar url:String = "http://www.esedeerre.com/ejemplos/as3/guardarfoto/"
var codificador:PNGEncoder;/////////////////////////////////////////////////////////////////////////FUNCIONESfunction Empezar():void{
Dibujo_mc.graphics.clear();
Mensaje_mc.visible = false;
Guardar_mc.addEventListener(MouseEvent.CLICK,Guardar);
addEventListener(MouseEvent.MOUSE_DOWN,SiPintar);
addEventListener(MouseEvent.MOUSE_UP,NoPintar);
}function SiPintar(e:MouseEvent){
Dibujo_mc.graphics.moveTo(Dibujo_mc.mouseX,Dibujo_mc.mouseY);
Dibujo_mc.addEventListener(Event.ENTER_FRAME,Pintar);
}function NoPintar(e:MouseEvent){
Dibujo_mc.removeEventListener(Event.ENTER_FRAME,Pintar);
}function Pintar(e:Event){
Dibujo_mc.graphics.lineStyle(3, ColorPicker_cp.selectedColor);
Dibujo_mc.graphics.lineTo(Dibujo_mc.mouseX,Dibujo_mc.mouseY);
}function Guardar(e:MouseEvent):void{
Mensaje_mc.visible = true;
Guardar_mc.removeEventListener(MouseEvent.CLICK,Guardar);
removeEventListener(MouseEvent.MOUSE_DOWN,SiPintar);
removeEventListener(MouseEvent.MOUSE_UP,NoPintar);
Mensaje_mc.Texto_txt.text = "Codificando imagen para su envio...";
//Creo los contenedores para enviar datos y recibir respuestavar enviar:URLRequest = new URLRequest(url + "guardar.php");
var recibir:URLLoader = new URLLoader();
//Creo el Bitmap que voy a convertirvar bmd:BitmapData = new BitmapData(400,400);
bmd.draw(Dibujo_mc);
var area:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
//Creo la variable que va a ir dentro de enviar, con los campos que tiene que recibir el PHP.var variables:URLVariables = new URLVariables();
//Creo el campo imgen, pasando primero el bitmap a un bytearray, y después codificandolo a Base64variables.imagen = Base64.encodeByteArray(PNGEncoder.encode(bmd));
//Indico el método por el que se va a enviar la información.enviar.method = URLRequestMethod.POST;
//Indico que voy a enviar variables dentro de la petición enviar.data = variables; //Añado listeners a recibir, para un posible error y una respuesta.recibir.addEventListener(Event.COMPLETE,Respuesta);
recibir.addEventListener(IOErrorEvent.IO_ERROR,HayError);
//Hago la petición al PHPrecibir.load(enviar);
Mensaje_mc.Texto_txt.text = "Esperando conversión del archivo...";
//Funcion que se ejecuta al recibir una respuesta del PHPfunction Respuesta(event:Event){
trace(event.target.data);
Mensaje_mc.Texto_txt.text = (" Tu imagen se ha guardado en:\n\n" + url + "imagenes/" + event.target.data);
} //Función que se ejectuta cuando no se puede cargar el PHPfunction HayError(event:IOErrorEvent):void {
trace("Error al cargar la url");
}}/////////////////////////////////////////////////////////////////////////EMPEZAMOSEmpezar();
stop();
http://www.esedeerre.com/descargas/guardar.rar
Hola Amparo, el php sigue estando aquí:
http://www.esedeerre.com/descargas/guardar.rar
Para PNGEncoder
http://code.google.com/p/as3corelib/downloads/list
Para Base64
http://dynamicflash.com/goodies/base64/
@Pablo
Eso lo puedes hacer en FP10, con la nueva función save() de FileReference
@martin
Eso es porque estás abriendo el archivo en una versión anterior de Flash a la CS3
@Cesar
Gracias por la info, lo pongo en "bonito"