Comunidad de diseño web y desarrollo en internet online

Variable php a flash

Citar            
MensajeEscrito el 08 May 2012 07:39 am
Buenas, llevo como un mes buscando la respuesta a este problema y no soy capaz, es vital para mi trabajo, y como no encuentre la solución pronto veo que todo lo que he hecho no me sirve de nada.
He probado mil formas diferentes de pasar una simple variable php a actionscript, hasta que al final he probado simplificando el código al máximo, pero ni siquiera de esa manera funciona.
Por ejemplo, si tengo este código "prueba.php":

Código PHP :

<?php
echo "nombre=Gonzalo";
?>


Y este código de AS3

Código ActionScript :

import flash.display.Sprite;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.sendToURL;


var req:URLRequest=new URLRequest("prueba.php");
var loader:URLLoader = new URLLoader();

loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.load(req);
loader.addEventListener(Event.COMPLETE, loadCompleteHandler);

function loadCompleteHandler(event:Event):void {
   var variable:URLVariables=new URLVariables(event.target.data);
   var nombre:String = event.target.data.nombre;
   trace(nombre);
}
stop();

Siempre me recoge el valor como null. Y no hay manera de pasar de ahí.
He llegado a copiar código de tutoriales y páginas tal cual y me sigue dando como valor null o NaN, es desesperante. Alguien me puede ayudar?

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 May 2012 11:57 am
¿Lo estas probando en un servidor? ¿Si abres solo el PHP imprime 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 08 May 2012 12:05 pm
Gracias por contestar, Jorge.
Lo he probado de ambas maneras, en servidor local y en servidor online.
El php imprime el texto bien, de hecho, si en el as3 pido que me muestre

Código ActionScript :

event.target.data
en vez de

Código ActionScript :

event.target.data.nombre
, me muestra toda la información del documento, incluyendo las palabras "nombre" y "Gonzalo" entre un montón de símbolos extraños, osea que sabe que están ahí, solo que no las recoge bien.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 May 2012 12:09 pm
Lo estas probando desde dentro de Flash, donde no interpreta que el php debe ser parseado y te lo devuelve literal. Pregunto de nuevo, ¿lo estas probando en un servidor local o remoto o solo desde dentro de flash?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 May 2012 12:18 pm
Supongo que por lo que dices lo estoy probando solo dentro de flash.
No tengo el .swf accesible desde ninguna pagina de mi servidor, de forma que el archivo flash lo veo siempre offline.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 May 2012 12:24 pm
Considera entonces montar un servidor local (uno facilito de instalar es XAMPP, http://www.apachefriends.org/es/xampp.html ) para que ejecute el PHP, y en vez de quedarte con el texto plano del cóodigo fuente, empieces a recibir realmente los datos. Si lo haces desde dentro de Flash, usa la ruta completa al PHP, por ejemplo

new URLRequest("http://localhost/prueba.php");

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 May 2012 12:26 pm
Muchas gracias, Jorge, ya tengo instalado un servidor wamp. Probaré lo que me has aconsejado, lástima que ya sea mi hora de salir del trabajo. Espero que mañana pueda dar con la solución...

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 May 2012 12:28 pm
¿Lástima por que? Mañana nos cuentas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 07:14 am
Buenos días, ya he probado con los cambios que hablamos y me sigue dando el mismo problema.
Lo estoy probando en un servidor local, la ruta está introducida correctamente, de hecho, si leo un archivo de texto (.txt) en vez de uno de php, sí que me recoge la información, pero al cambiar la ruta al .php inmediatamente me devuelve el valor como "undefined".
¿Qué puedo estar haciendo mal? No os cortéis de explicarme las cosas más básicas como a un niño, jeje

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 11:51 am
Abre el archivo PHP en el navegador, por ejemplo abres el browser y tipeas

http://localhost/algun.php

Y miras que imprime, y si es lo que espera Flash

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 11:54 am
Me responde correctamente, con el par de valores; en este caso:

nombre=Gonzalo

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 12:02 pm
En vez de un trace, pon un campo de texto con nombre de instancia muestra y en vez del trace pon

muestra.text = nombre

Pon el HTML y el swf en la carpeta del servidor y miralo desde el navegador (ej http://localhost/miflash.html)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 12:09 pm
Ya lo tengo así como dices, este es mi código as3 actual:

Código ActionScript :

import flash.display.Sprite;
import flash.net.*;
import flash.net.sendToURL;

var req:URLRequest=new URLRequest("http://127.0.0.1/gamebaloo/pruebas/prueba.php");
var loader:URLLoader = new URLLoader();

loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.load(req);
loader.addEventListener(Event.COMPLETE, loadCompleteHandler);

function loadCompleteHandler(event:Event):void {
   var variable:URLVariables=new URLVariables(event.target.data);
   var nombre = String(variable.nombre);
   title_text.text = nombre;
}
stop();


Y este mi codigo php, que sigue igual:

Código PHP :

<?php
echo "nombre=Gonzalo";
?>


Tengo los todos los archivos dentro de la misma carpeta: el swf, el fla, el php... todos.
Tambien he probado subiéndolos a un servidor que tengo contratado para otra página.
Poniendo en el navegador "127.0.0.1/gamebaloo/pruebas/pruebaFlash.swf" sigue apareciéndome en el campo de texto la palabra "undefined".
Claramente el error está en algo básico, algo que a lo mejor para otra persona resulta obvio, pero quizás para mi no.

En serio, muchas gracias por seguir ayudándome, Jorge, te voy a poner una casa en la playa, jeje.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 12:14 pm
subiéndolos a un servidor que tengo contratado para otra página.
Poniendo en el navegador "127.0.0.1/gamebaloo/pruebas/pruebaFlash.swf"


Si lo subes a un servidor cuyo dominio es digamos midominio.com, lo que deberias escribir en el navegador es

http://midominio.com/gamebaloo/pruebas/pruebaFlash.html

Ya que el servidor no es local (127.0.0.1 significa localhost) Sube ademas el HTML que contiene tu swf y apunta a el, no al swf directamente.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 12:31 pm
Vale, he subido todo al servidor de mi otra página.
He cambiado en el archivo flash la ruta de enlace, del servidor local, al servidor online.
He cargado en la barra de navegación el archivo html donde está embebido el flash.
Se ha producido un cambio, ahora, el archivo .swf carga, pero en vez de mostrar "undefined" no muestra nada. Tampoco funciona si intento cargar el archivo .txt, que hasta ahora siempre funcionaba.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 12:49 pm
Pasame la URL y lo miro

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 01:19 pm
[url=http://nuevosvagos.es/gamebaloo/pruebas/indice.html][/url]
Ese es el enlace, aunque no creo que te sirva de mucho, en el código sólo se ve el embed del flash.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 01:25 pm
prueba PHP me viene con todo el HTML de página, incluso con un title GameBaloo, algo que no debería pasar si su contenido es este:

Código :

<?php
echo "nombre=Gonzalo";
?>


¿Estas agregando algo mas al PHP o el servidor inyecta automáticamente eso en el request ? Si el caso es el segundo, no podrás usar carga dinámica a menos que deshabilites eso

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 01:57 pm
Ya he cambiado eso, el archivo tenía toda la estructura de html, ahora solo tiene el php.
Sin subir al servidor, sigue mostrándome undefined, subiéndolo al servidor, sigue sin mostrarme nada.

Por Liranan

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 May 2012 02:15 pm
Para mi functiona. Borra cache y abre esta URL

http://www.nuevosvagos.es/gamebaloo/pruebas/indice.html

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 May 2012 02:48 pm
FUNCIONA!
Madre mía, no me lo creo, muchísimas gracias.
Ahora solo tengo que adaptarlo a la página web y podré seguir avanzando con mi trabajo, a lo mejor me has conseguido un par de meses más de sueldo, jeje.
Si puedo ayudarte con algo, dímelo!

Gracias.
Gonzalo.

Por Liranan

13 de clabLevel



 

chrome

 

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