Last active
August 29, 2015 13:56
-
-
Save azcdev/9002521 to your computer and use it in GitHub Desktop.
Como enviar información de un SWF a otro en AS3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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. | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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