Código ActionScript :
guardar_mc.buttonMode = true ;
input_txt.addEventListener(Event.CHANGE, updateTexto);
mensaje_txt.addEventListener(Event.CHANGE, updateTexto);
lugar_txt.addEventListener(Event.CHANGE, updateTexto);
fecha_txt.addEventListener(Event.CHANGE, updateTexto);
anfitrion_txt.addEventListener(Event.CHANGE, updateTexto);
// fuente
tipo_cb.addEventListener(Event.CHANGE, updateTexto);
// cuerpo
size_cb.addEventListener(Event.CHANGE, updateTexto);
// botón guardar
guardar_mc.addEventListener(MouseEvent.CLICK, crearIMG);
// --------------------------------------------------------------
// --------------------------------------------------------------
function cambiarColor(fotograma:uint){
shirt_mc.gotoAndStop(fotograma);
}
function cambiarColorTexto(col:Number){
textFormat1.color=col;
texto_txt.setTextFormat(textFormat1);
texto1_txt.setTextFormat(textFormat1);
texto2_txt.setTextFormat(textFormat1);
texto3_txt.setTextFormat(textFormat1);
texto4_txt.setTextFormat(textFormat1);
}
function updateTexto(e){
textFormat1.font="Abel";
textFormat1.size="18";
texto_txt.text=input_txt.text;
texto_txt.setTextFormat(textFormat1);
texto1_txt.text=mensaje_txt.text;
texto1_txt.setTextFormat(textFormat1);
texto2_txt.text=lugar_txt.text;
texto2_txt.setTextFormat(textFormat1);
texto3_txt.text=fecha_txt.text;
texto3_txt.setTextFormat(textFormat1);
texto4_txt.text=anfitrion_txt.text;
texto4_txt.setTextFormat(textFormat1);
}
// botón guardar
guardar_mc.addEventListener(MouseEvent.CLICK, crearIMG);
// --------------------------------------------------------------
// --------------------------------------------------------------
function crearIMG(e):void {
capturarIMG(shirt_mc, formato_cb.selectedItem.data);
}
function capturarIMG(target:DisplayObject, tipo:String):void {
img_count++;
// dirección de la url PHP
var phpCreator:URLRequest = new URLRequest("crearIMG.php");
phpCreator.method = URLRequestMethod.POST;
// objeto que contendrá los datos a enviar
var datosPOST:URLVariables = new URLVariables();
// rutinas para capturar el área deseada, en nuestro caso el clip shirt_mc
var relative:DisplayObject = target.parent;
var rect:Rectangle =target.getBounds(relative);
// borde en píxeles que se añade alrededor de la imagen
var bordeImagen:uint=1;
var bitmapData:BitmapData = new BitmapData(rect.width + bordeImagen * 2, rect.height + bordeImagen * 2);
// capturamos la imagen
bitmapData.draw(relative, new Matrix(1, 0, 0, 1, -rect.x + bordeImagen, -rect.y + bordeImagen));
var byteArray:ByteArray;
switch (tipo) {
case "JPEG":
// en el caso jpeg hay que instanciar un objeto pasando
// la calidad JPEG antes de invocar el método
datosPOST.nombreArchivo="imagen"+img_count+".jpg";
var jpgEncoder:JPGEncoder = new JPGEncoder(100);
byteArray = jpgEncoder.encode(bitmapData);
break;
case "PNG":
default:
datosPOST.nombreArchivo="imagen"+img_count+".png";
byteArray = PNGEncoder.encode(bitmapData);
break;
}
// codicamos en Base64
var byteArrayAsString:String = Base64.encodeByteArray(byteArray);
// rellenamos el objeto contenedor con los datos a enviar
datosPOST.image = byteArrayAsString;
datosPOST.tipo=tipo;
phpCreator.data = datosPOST;
// enviamos los datos
navigateToURL(phpCreator, "_self");
}
Aqui el PHP:
Código PHP :
<?php
if ($_POST['tipo'] == 'PNG'){
header('Content-Type: image/png');
}else{
header('Content-Type: image/jpeg');
}
header("Content-Disposition: attachment; filename=".$_POST['nombreArchivo']);
echo base64_decode($_POST["image"]);
?>Necesito hacer que la imagen personalizada se pueda imprimir...
