Skip to content

Instantly share code, notes, and snippets.

@bitforth
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitforth/9002521 to your computer and use it in GitHub Desktop.
Save bitforth/9002521 to your computer and use it in GitHub Desktop.
Como enviar información de un SWF a otro en AS3
// crea conexion local
var receive_lc:LocalConnection = new LocalConnection();
// permite comunicacion entre SWFs entre diferentes dominios
receive_lc.allowDomain("*");
// Espera por conexiones entrantes.
// Este comando tiene que ejecutarse ANTES de que el otro SWF envie información.
receive_lc.connect("_connection1");
// Éste método solo es llamado por el SWF que envía información
function recibe_fotos(arrayDeBytes){
// En esta funcion, haz lo que necesitas hacer con los argumentos enviados.
}
public function capturarImagen(e:Event) {
mapaDeBits.draw(miWebcam);
var codificador:JPGEncoder = new JPGEncoder(85);
arrayDeBytes = codificador.encode(mapaDeBits);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var req:URLRequest = new URLRequest("crearfoto.php?nombre=foto.jpg");
req.requestHeaders.push(header);
req.method = URLRequestMethod.POST;
req.data = arrayDeBytes;
// Aqui quite el metodo navigateToURL, en dado caso de que no quieras abrir una ventana del explorador
// nueva tienes que utilizar las siguientes lineas, para no romper el flujo del usuario:
var guardarJPG:URLLoader = new URLLoader();
guardarJPG.dataFormat = URLLoaderDataFormat.BINARY;
guardarJPG.addEventListener(Event.COMPLETE, function(e:Event):void{
//Esto es una funcion anónima que solo corre despues de haber enviado el array de bytes al archivo PHP.
// Esta funcion se encarga de enviar la información al otro SWF:
// 1) crea una instancia de conexion local
var send_lc:LocalConnection = new LocalConnection();
// El método enviar siempre empieza con dos argumentos obligatorios:
// el nombre de la conexion que siempre inicia con un guión bajo al inicio del nombre
// y el nombre del método/función que se va a ejecutar cuando el otro SWF reciba la información. El nombre tiene que ser pasado como una string.
// El tercer argumento contiene la información que el SWF va a enviar, puede ser un array, un objeto, una string o lo que necesites que sea (en tu caso puede ser un array de bytes, o la ruta de la fotografía en el servidor). En este caso estoy enviando un arrayDeBytes, ya que en un caso de alta concurrencia, si envias una ruta al servidor, la ruta puede apuntar que ya no es el mismo o ya no existe.
send_lc.send("_connection1","recibe_fotos", arrayDeBytes);
});
//guarda la imagen
guardarJPG.load(req);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment