Foros del Web » Creando para Internet » Flash y Actionscript »

Duda con navigateToURL

Estas en el tema de Duda con navigateToURL en el foro de Flash y Actionscript en Foros del Web. Hola, estoy desarrollando una aplicación en la que los usuarios puedan hacer un dibujo en flash y luego este dibujo se guarda en un servidor. ...
  #1 (permalink)  
Antiguo 30/03/2011, 04:14
 
Fecha de Ingreso: julio-2008
Mensajes: 74
Antigüedad: 15 años, 10 meses
Puntos: 1
Duda con navigateToURL

Hola, estoy desarrollando una aplicación en la que los usuarios puedan hacer un dibujo en flash y luego este dibujo se guarda en un servidor. Todo funciona bien, excepto que en el script para guardar la imagen al sevidor hay un navigateToURL que cuando guarda la imagen me abre una ventana con la url de la imagen y si comento esa linea no salta la ventana pero no guarda la imagen en servidor

¿Como podría evitar que saltase esa ventana, pero que la imagen se guarde en el servidor?

Este es el script que utilizo:

Código:
private function saveHandler(e:MouseEvent):void 
      { 
         canvas.overlay = null; 
         //creamos un Bitmap del lienzo 
         var canvasBmp:BitmapData = new BitmapData(521,213); 
         canvasBmp.draw(canvas); 
 
         var myEncoder:JPGEncoder = new JPGEncoder(100); 
         var byteArray:ByteArray = myEncoder.encode(canvasBmp); 
 
         canvasBmp.dispose(); 
 
         _fileRef = new FileReference(); 
         _fileRef.save(byteArray, "dibujo.jpg"); 
         var header:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream"); 
         var myDate:Date = new Date(); 
         var timeNow:Number = myDate.getTime(); 
         timeNow.toString(); 
         var saveJPG:URLRequest = new URLRequest("savejpg.php?nombre=images/dibujo_"+myDate+".jpg"); 
         saveJPG.requestHeaders.push(header); 
         saveJPG.method = URLRequestMethod.POST; 
         saveJPG.data = byteArray; 
         //**************************************** 
         navigateToURL(saveJPG, "_blank"); 
         //**************************************** 
      }

y este es el php:

Código PHP:
<?php 
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) 

   
// get bytearray 
   
$jpg $GLOBALS["HTTP_RAW_POST_DATA"]; 
 
   
// add headers for download dialog-box 
   
header('Content-Type: image/jpeg'); 
   
$nombreArchivo $_GET['nombre']; 
   
$manejadorArchivo fopen($nombreArchivo'w') or die("No se pudo escribir archivo"); 
   
fwrite($manejadorArchivo,$jpg); 
   
fclose($manejadorArchivo); 

?>


gracias!!
  #2 (permalink)  
Antiguo 30/03/2011, 13:26
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Respuesta: Duda con navigateToURL

Hola.

Efectivamente, el comportamiento es correcto, navigateToURL es para abrir una nueva pagina en el navegador.

Si quieres solo enviar data de forma transparente al usuario debes usar un loader algo así:

Código actionscript:
Ver original
  1. //..dentro de la funcion
  2. var loader:URLLoader = new URLLoader();
  3. loader.addEventListener(Event.COMPLETE, handleComplete);
  4. loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
  5. loader.load(saveJPG);
  6.  
  7. //final funcion
  8.  
  9. private function handleComplete(e:Event)
  10. {
  11.      trace("Envio completado " + e)
  12. }
  13.  
  14. private function onIOError(e:IOErrorEvent)
  15. {
  16.     trace("Algo salio mal " + e)
  17. }

Con esto envías tu data al script y esperas a que se ejecute algún evento dependiendo del resultado de la petición.

Saludos

Etiquetas: navigatetourl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.