Comunidad de diseño web y desarrollo en internet online

Comunicar el SWF con PHP para enviar y recibir variables

Citar            
MensajeEscrito el 08 Jul 2011 08:30 am
Hola! No consigo solucionar mi problema.
He realizado un juego en as3, ahora lo que quiero es que me lleguen unos datos relacionados con el nombre de usuario y demás del php que me llegaran en una url y pasarselos al swf para que me ponga en el texto inicial el nombre de usuario. Después quiero enviar el resultado del juego en el swf al PHP para que se puedan almacenar los datos en la base de datos.
Por favor alguien me puede ayudar!!! Estoy atascada y no me sale nada.
Gracias por adelantado

Por madeline

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jul 2011 01:36 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Jul 2011 02:51 pm
Hola de nuevo, no consigo que me funcione el ejemplo ese de los FlashVars, como se haría recibiendo los parametros desde php como argumentos del propio .swf?? Por ejemplo:

echo "\n<center>";
echo "\n<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\" width=\"550\" height=\"500\" id=\"edugame\" align=\"middle\">";
echo "\n<param name=\"allowScriptAccess\" value=\"sameDomain\" />";
echo "\n<param name=\"movie\" value=\"".$CFG->wwwroot."/file.php/".$edugame->course."/".$edugame->file."?userid=".$USER->id."&firstname=".$USER->firstname."&lastname=".$USER->lastname."&wwwroot=".$CFG->wwwroot."&id=".$id."\" />";
echo "\n<param name=\"quality\" value=\"high\" />";
echo "\n<param name=\"bgcolor\" value=\"#000000\" />";
echo "\n<embed src=\"".$CFG->wwwroot."/file.php/".$edugame->course."/".$edugame->file."?userid=".$USER->id."&firstname=".$USER->firstname."&lastname=".$USER->lastname."&wwwroot=".$CFG->wwwroot."&id=".$id."\" quality=\"high\" bgcolor=\"#000000\" width=\"550\" height=\"500\" name=\"edugame\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />";
echo "\n</object>";

Quiero que me devuelva al as3: el userid y el firtname. Y después devolver de nuevo el valor de los puntos en una variable para que lo almacene php en la base de datos cuando haya terminado y me envie a traves de:
navigateToURL (new URLRequest(urlcompleta),"_self");
a la url, pero ante esto tampoco responde.
Alguna idea más?? gracias por los ejemplos Jorge pero no me acaba de funcionar...

Por madeline

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jul 2011 05:17 pm
Lo est{as pasando como GET (agregándolos después del ?), hazlo hardcoded primero para ver que recibas las variables, una vez que las recibes lo haces con PHP, miras el sourcode del HTML generado a ver si está imprimiendo correctamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Jul 2011 05:59 pm
Si, los estoy pasando por GET, ahora he conseguido ver la direccion con el navigateToURL al ponersela directamente con los parametros. Pero no me muestra las variables que recoge del php ni me las envia despues el swf para guardalas despues.


Esto es lo que hago:

Código ActionScript :

 var intentos:int;
 var userid:int;
var id:int;
var url:String;
var recibirDatos:URLLoader;
var enviarDatos:URLRequest;
var datos:URLVariables;
url="http://localhost/mod/edugame/play.php";
//var parini:String="?id=6";
         
//Creo la variable para configurar el envio de información a PHP
enviarDatos = new URLRequest(url);
//Indico el método por el que se va a enviar la información a PHP.
enviarDatos.method = URLRequestMethod.GET;
//Creo la variable que enviara los datos. Esta variable puede contener varias subvariables
datos = new URLVariables();
                           
//Creo la variable para configurar la respuesta que se recibe desde PHP
recibirDatos = new URLLoader();
//Especificamos el formato de los datos llegados desde PHP
recibirDatos.dataFormat = URLLoaderDataFormat.VARIABLES;//elegimos datos contenidos en variables
         
//Escucha para recibir los datos cuando la conexión tiene éxito
recibirDatos.addEventListener(Event.COMPLETE, respuesta);
      
//Escucha en caso de ocurrir un error en la conexión
recibirDatos.addEventListener(IOErrorEvent.IO_ERROR, hayError);
         
recibirDatos.load(enviarDatos);

function onTodoHecho(event:Event):void {   
      //guardamos las variables 
         datos.userid=userid;
         datos.puan=intentos;
         datos.id=id;
         tuser2.text=datos.userid;
         tuser1.text=intentos.toString();         
         
         enviarDatos.data=datos;
         recibirDatos.load(enviarDatos);
         //var param:String="?userid=2&point="+intentos+"&id=6";
         //var urlcompleta:String=url+param;
         //navigateToURL (new URLRequest(urlcompleta),"_self"); 
       }
//creamos la función “Respuesta” para trabajar con los datos llegados desde PHP
function respuesta(event:Event){
            tuser2.text=recibirDatos.data.userid;
            //tuser.text=recibirDatos.data;
            /*Las variables que escribamos en la variable “RecibirDatos”
            tienen que coincidir con los campos creados en el ECHO del PHP.*/
}
//Creamos la función “HayError” para que nos informe en caso de un error en la conexión
function hayError(event:IOErrorEvent):void {
         tuser3.text="Error al cargar la url";
}


Lo que pretendo es que recibiendo del php el userid, ejecuto el swf y cuando tenga todo hecho me devuelve los intentos que es una variable flash que quiero guardar en php, la paso como GET. Y necesito almacenar del swf al php, el id, el userid y el puan.
Pero nada ni envia datos ni los recibe, no sale ningun error, solamente al probarlo en el servidor no aparece los text con el valor de las variables y tampoco me lleva a la pagina a menos que la ponga directamente.
Y lo que tengo en el fichero php es el codigo del objeto que te envio antes y las variables que quiero que envie php definidas..
Alguna sugerencia?? Ya no se que hacer para arreglarlo ni veo que hago mal... alguna idea??
GRacias

Por madeline

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jul 2011 06:14 pm
Cuando pasas y recibes datos desde el back-end necesitas un sniffer para ver si se envían o no, puedes usar Firebug o http://www.charlesproxy.com

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Jul 2011 06:42 pm
Pero el codigo está bien? No se envían ni reciben lo valores ¿¿como puedo solucionarlo??
¿Como se usa el charlesproxy?

Por madeline

28 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.