Comunidad de diseño web y desarrollo en internet online

comunicacion entre AS-php, que funcione...

Citar            
MensajeEscrito el 12 Jul 2006 05:09 pm
muy buenas tardes compañeros y compañeras programador@s, me remito a ustedes en busca de la iluminacion...en busca de la potencia que teoricamente ofrece el AS (actionScript), que todavia esta muy fuera de mi alcance...
empece con esto hace un par de meses, yo programo en php y al descubrir que se podian comunicar a traves del objeto LoadVars(tengo la version 8.0 profesional) se me hizo la boca agua...el diseño grafico que permite flash unido al manejo de las bbdd mysql que me permite php...no cabia en mi de gozo, pero ete aqui el problema...soy un poco tontito...
llevo una semana y media subido en la pared de mi habitacion, desde la que echo miradas reprovatorias a mi teclado, como si el fuera el culpable de mi negligencia...
sin mas preambulos(gracias a dios pensareis) escribo cual es el problema:

el tutorial que hay aqui llamado "Tutorial de LoadVars en Flash" a primera vista parecia la solucion a todos mis problemas, pero no consegui hacerlo funcionar escribiendo yo el codigo, asi que me dije, sera un error tipografico que no encuentro...asi que me decido a bajarme los archivos fuente del tutorial, pero, ¡oh sorpresa!, el codigo del archivo php en cuestion, no era el que prometia el tutorial...y se me quedo una cara un tanto extraña...

he seguido buscando decidido a no rendirme con el dichoso objetito...y he encontrado este enlace...interesantisimo, muy bien explicado y con ejemplos pequeños de cada parte que luego se funden en un todo de pura iluminacion educativa. explica como hacer una agenda bien mona conectada a un archivo php que consulta a una base de datos mysql, esta le devuelve el resultado y este a su vez, lo devuelve a flash usando el potente metodo sendAndLoad de una variable declarada como loadVar y "loadeada" previamente; aqui os adjunto el enlace para que le echeis un vistazo:

http://www.adobe.com/es/devnet/flash/articles/flashmx_php.html

pero de nuevo me encuentro con el mismo problema...mi increible ineptitud...el codigo es sencillo hasta decir basta, bien explicado y blablabla...pero yo, que me creo muy listo, cojo lo que necesito del codigo y lo pruebo, previa adaptacion...y no me funciona, luego me bajo los archivos del tutorial y modificando lo pertinente (me creo una base de datos nueva llamada pruebas, creo una tabla como la que describen en la web, con los mismos campos exactamente, modifico el nombre del servidor, el usuario, la contraseña y la base de datos del archivo php que se encarga de la conexion....creo que eso es todo... :? ), lo pruebo y sigue sin funcionar, el *.php no ve al *.fla ni con rutas absolutas ni relativas y no se comunican entre ellos...

asi que como ultimo recurso desesperado posteo aqui para que alguien mas sabio y mas humilde que yo me ilumine con su conocimiento y me de un par de collejas al ver donde estoy cometiendo el error...

una vez que haya conseguido comunicarlo, tratare de sacar tiempo para subir un ejemplo a esta pagina, que es por cierto MUY util para los que aprenden flash, y asi facilitar el camino de los que vengan despues de mi. enhorabuena por vuestro trabajo y continuad asi

la humildad es un precio que deberia de estar dispuesto a pagar

Por maije

Claber

104 de clabLevel



Genero:Masculino  



Ultima edición por maije el 13 Jul 2006 10:43 am, editado 1 vez

Valladolid

firefox
Citar            
MensajeEscrito el 12 Jul 2006 05:56 pm
Hola Maije, después de toda tu explicación te faltó poner el código para poder verlo y saber si por ahí hay un error.
De cualquier forma te sugiero que pruebes tu script php, llamándolo directamente de tu navegador, para saber si obtienes en la pantalla el valor del print, que deberan ser las variables que envías al swf, si el resultado no es el deseado, considera poner en una variable el error de mysql que te pueda resultar para que lo veas y sepas por dónde está el problema.
Si el resultado es correcto, entonces te vuelvo a sugerir poner el código de as para poder ver y tal vez encontrar el error.
Si lo consideras pertinente envíame tus archivos y te trato de ayudar, [email protected].
Saludos

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 12 Jul 2006 05:57 pm
Complemento, pf envía en formato de flash mx2004, en la máquina que estoy trabajando no tengo el 8

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 12 Jul 2006 06:07 pm
hola rafael. en primer lugar, muchisimas gracias por tu interes y tu inquebrantable paciencia para leer la chapa que escribi antes...en segundo lugar, creo que sera mas facil que te envie los archivos fla y php junto con los de las base de datos para que le puedas echar un vistazo tranquilo en tu servidor y probarlo. si consigues ayudarme, el proximo año monto en las fiestas de mi ciudad un pabellon dedicado a mexico en tu honor, porque una vez que consiga comunicar el php y el flash adecuadamente, "el limite esta en el cielo" :P. como he dicho, en breve te enviare un *.rar con los archivos a tu correo desde mi cuenta([email protected]) y cuando lo solucionemos pegare aqui el codigo correcto para que otros puedan beneficiarse de el.

gracias de nuevo por tu rapidez y tu interes.
atentamente:
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 16 Jul 2006 08:51 pm
buenas de nuevo compañer@s
me urge un poco la solucion a lo que plantee aqui y necesito ayuda. solo teneis que bajaros los archivos fuente de la pagina que mencione mas arriba (http://www.adobe.com/es/devnet/flash/articles/flashmx_php.html) y modificar los datos de la conexion para probar si a vosotros os funciona ese codigo...si os funciona decidme como y si no os funciona pero lo lograis hacer, responded por aqui pegando las modificaciones en el codigo que tuvisteis que realizar.
PD: me corre bastante prisa
gracias de antemano

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 17 Jul 2006 02:06 pm
lo prometido es deuda, aqui os dejo el codigo que me funciona y os explico como hacerlo.

finalmente no use los archivos fuente de la pagina que tengo ahi arriba, no encontre el error, pero en esta misma web, encontre un tutorial que SI que funcionaba y modificando un poco el codigo lo logre. aqui os lo pego:

NOTA: para probar este script en el servidor sin necesidad de flash hay que cambiar ".$_POST['tabla']." por el nombre de vuestra tabla (pruebas en mi caso), puesto que estoy usando el metodo sendAndLoad, con el que le paso el nombre de la bbdd para probar que se comunica en ambos sentidos...

1- cree una base de datos con mysql llamada "pruebas" y dentro una tabla llamada "prueba" con un unico campo: id (smallint autoincrement primary key) y le introduje algunos valores de prueba (1,2,3,4,15,16)
2- en mi servidor apache con modulo para php4 (htdocs) cree un nuevo archivo php con el siguiente codigo:

<?php
$HOST = "localhost";
$USER = "XXX";
$PASS = "XXX";
$DATABASE = "pruebas";
//hacemos la conexion
$conex = mysql_connect($HOST, $USER, $PASS);
mysql_select_db($DATABASE, $conex);
//la consulta a la bbdd. si quereis probarlo fuera del flash, cambiad ".$_POST['tabla']." por el nombre de la vuestra
$sql = "SELECT id from ".$_POST['tabla']." order by id";
$result = mysql_query($sql);
mysql_close();
$respuesta="";
$i=0;
//el bucle que nos metera en la variable los valores que necesitemos
while (list($id) = mysql_fetch_array($result)){
$respuesta.= "&ID$i=".$id;
$i++;
}
$respuesta.="&";
//si no sabeis para que se usa utf9_enconde podeis consultar el tutorial del que he extraido el codigo en esta misma
// web(Guía de LoadVars,desde acentos a bases de datos) o ir directamente a
// http://es2.php.net/manual/es/function.utf8-encode.php
echo utf8_encode($respuesta);
?>

3- despues, en la misma carpeta del archivo *.php, cree el *.fla que no tiene ningun objeto, unicamente codigo en el primer fotograma de la aplicacion:

//declaro la variable
var archivoPHP:LoadVars = new LoadVars();
//le doy un valor
archivoPHP.tabla="prueba";
//llamo al metodo que enviara los valores de esa variable con el siguiente formato: $_POST['nom_var']
archivoPHP.sendAndLoad("http://localhost/pruebas/comunica/comunica.php",archivoPHP,"POST");
archivoPHP.onLoad = function (exito:Boolean){
if (exito){
for (var i:Number=0;this["ID"+i]!=undefined;i++){
trace("ID"+i+": "+this["ID"+i]);
}
} else{
trace("error al cargar el script php");
}
}

NOTA: evidentemente se puede crear una caja de texto (si quieres estatico o dinamico o como quieras...), por ejemplo llamada texto y en vez del trace poner algo asi:

//este codigo no esta probado asi que puede tener errores de sintaxis
texto.htmlText=true;
texto.text="valores devueltos: ";
for (var i:Number=0;this["ID"+i]!=undefined;i++){
texto.text.="ID"+i+": "+this["ID"+i];

pero como esto es solo un archivo de prueba de funcionamiento no haria falta...en el panel de salida lo podeis ver perfectamente...si no veis el panel de salida, id a "ventana-salida" y se os marcara como seleccionado y os aparecera una ventanita que podeis agrupar junto a otro paneles, por ejemplo el de biblioteca...

4- presionais ctrl+intro y se ejecuta el *.swf mostrandoos en el panel de salida los datos que introdujerais en vuestra bbdd, en mi caso (1,2,3,4,15,16)...podeis hacer pruebas borrando o añadiendo registros para aseguraros de que se actualiza correctamente y todo ese rollo...

bueno, al fin lo logre...espero que este post os sirva a muchos de vosotros para poder aprovechar la potencia del objeto LoadVars con alguno de sus metodos. si quereis emplear solo el Load sera mas simple, ya que con indicar la URL del php os recogera cualquier informacion que hayais enviado con "echo" ó "print"

saludos a todos :lol:

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox

 

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