Lo que quisera hacer es cargar una imagen desde una URL y que se incluyera en el BitmapData que se creara.
No se como puedo hacerlo, imagino deberia cargar la imagen y convertirla (¿como?) a BitmapData para poder attacharla (¿como?) junto a Dibujo_mc y luego que se creára el png, pero (¿como?), saludos
Código ActionScript :
/////////////////////////////////////////////////////////////////////// //CLASES import 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 PNG import 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 PHP import com.dynamicflash.util.Base64; /////////////////////////////////////////////////////////////////////// //VARIABLES //Url del archivo PHP que va a codificar la imagen var url:String = "http://www.esedeerre.com/ejemplos/as3/guardarfoto/" var codificador:PNGEncoder; /////////////////////////////////////////////////////////////////////// //FUNCIONES function 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 respuesta var enviar:URLRequest = new URLRequest(url + "guardar.php"); var recibir:URLLoader = new URLLoader(); //Creo el Bitmap que voy a convertir var 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 Base64 variables.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 PHP recibir.load(enviar); Mensaje_mc.Texto_txt.text = "Esperando conversión del archivo..."; //Funcion que se ejecuta al recibir una respuesta del PHP function 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 PHP function HayError(event:IOErrorEvent):void { trace("Error al cargar la url"); } } /////////////////////////////////////////////////////////////////////// //EMPEZAMOS Empezar(); stop();