Buscador
YoReparo.com La Web 

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

Imposible Pasar valores php a Flash

comentario del autor Lun Oct 08, 2007 11:58 pm
   
Amigos he estado buscando la forma de pasar valores de php a Flash mediante el objeto loadVars. Este es mi código Actionscript en Flash:

Cargar = new LoadVars();
Cargar.load("http://localhost/v3beta/videoconferencia.php");

Cargar.onLoad = function(exito)
{ if(exito)
{ Nom_txt.text = this.nmbr;
}
else
{ Nom_txt.text = "No se pudo";
}
}

Este es mi código php:
$Nombre = $_POST["nombre"];

echo "<embed src = 'Videoconferencia1_Conferencista.swf' autostart = 'true' quality = high pluginspage = 'http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type = 'application/x-shockwave-flash' width = '1024' height = '768' name = 'pizarra_ie' id = 'pizarra_ff'></embed>";

echo utf8_encode("&nmbr=".$Nombre."&");

y el campo de texto Nom_txt me muestra "Undefined".
Ya logré cargar variables desde un archivo de texto pero en php no funciona y en todos los foros dice que sí.
Lo he probado con el AppServ y con el Centos y nada...

¿Alguna opinión amigos?
Gracias

David Fragoso Cháidez

Reputación

comentario Mie Nov 28, 2007 9:26 pm
   
David Fragoso Cháidez escribió:Amigos he estado buscando la forma de pasar valores de php a Flash mediante el objeto loadVars. Este es mi código Actionscript en Flash:

Cargar = new LoadVars();
Cargar.load("http://localhost/v3beta/videoconferencia.php");

Cargar.onLoad = function(exito)
{ if(exito)
{ Nom_txt.text = this.nmbr;
}
else
{ Nom_txt.text = "No se pudo";
}
}

Este es mi código php:
$Nombre = $_POST["nombre"];

echo "<embed src = 'Videoconferencia1_Conferencista.swf' autostart = 'true' quality = high pluginspage = 'http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type = 'application/x-shockwave-flash' width = '1024' height = '768' name = 'pizarra_ie' id = 'pizarra_ff'></embed>";

echo utf8_encode("&nmbr=".$Nombre."&");

y el campo de texto Nom_txt me muestra "Undefined".
Ya logré cargar variables desde un archivo de texto pero en php no funciona y en todos los foros dice que sí.
Lo he probado con el AppServ y con el Centos y nada...

¿Alguna opinión amigos?
Gracias


No, no esta mal implementado, no puede ir lo que queres que cargue flash en la misma página que estas enviando los tags ya que son dos lineas de ejecución distintas si lo queres hacer así yo agregaria en el embed un campo nmbr=".$Nombre." que a este lo podes leer dentro del flash, sino me equivoco era _root.nmbr

Espero que te sirva, cualquier cosa avisa.

Saludos

yoreparodr

Reputación

comentario del autor Mie Nov 28, 2007 11:41 pm
   
Gracias amigo, prové lo que me dijiste pero no me funcionaron tus propuestas.
Descubrí que el archivo flash si capta el nombre del mismo php que lo contiene pero solo me muestra la variable si la asigno así en el php:
$Nombre = "Karla";
pero si trato de recoger el valor así:
$Nombre = $_POST["nombre"];
en el flash me sale undefined
y si compruebo con una salida normal de php el valor de $Nombre
sí me despliega su valor: "Karla".
El flash no puede captar un valor que fué previamente enviado al php por otra página, solo un valor asignado en el mismo php que contiene al flash

La forma en que lo estoy haciendo funcionar es mediante un archivo de texto así:
1 en el html capto el nombre y lo envío al php
2 en el php creo un archivo de texto donde escribo el nombre
3 el flash lee el nombre del archivo de texto

Pero yo quiero hacerlo directamente del php para ahorrarme tanto proceso
Acepto opiniones

David Fragoso Cháidez

Reputación

asistió a la solución Jue Nov 29, 2007 2:00 pm
   
Hola David,

Me explico un poco, PHP es solamante un lenguage interpretado, cuando lo ejecutas el CPU genera una linea de ejecución que procesa el mismo, como salida obtenes en este caso una página html, se envia esa página a tu navegador a través del servidor y el thread de ejecución de ese PHP muere.
Una vez q la pagina la recibe tu navegador, este procesa el html y gestiona los archivos que faltan, entre esos archivos que faltan están el flash, pero notá que a estas altura el proceso de PHP no existe, por eso es que no te permite enviar las variables.

Probá con esto y contame:
Código:
Nom_txt.text = _root.nmbr;


Código:
<?php
$Nombre = $_POST["nombre"];

echo "<embed src = 'Videoconferencia1_Conferencista.swf?nmbr=".urlencode($Nombre)."' autostart = 'true' quality = high pluginspage = 'http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type = 'application/x-shockwave-flash' width = '1024' height = '768' name = 'pizarra_ie' id = 'pizarra_ff'></embed>";

?>


Por supuesto lo q te explique arriba es sumamente básico y considerando ceteris paribus un montón de variables, el proceso es un poco más complejo y varia según infinidad de configuraciones.

Espero q te sirva.

Saludos.

PD: Ojo q <embed> funciona en algunos navegadores nomás debes usar <object> también.

yoreparodr

Reputación

comentario del autor Jue Nov 29, 2007 6:43 pm
   
Gracias por tu esfuerzo, te califiqué que asistió a la solución pero no funciona. Lo hice tal como me lo dijiste y nada, empecé a variarle cosas y nada.
Pienso que un valor recogido por $_POST es un valor html y FLASH no lee html sino php.
Como explicaste, las salidas php son html, pero Flash lee php como texto, o algo no he hecho bien.

Si tienes mas ideas son bienvenidas, a mi ya no se me ocurre nada...

David Fragoso Cháidez

Reputación

solución Jue Nov 29, 2007 9:47 pm
   
Mira, sencillamente no puede ser, notaste que agregue al nombre del flash la variable..así:

nombreflash.swf?variable=valor

y adentro la capturas así:

_root.variable

Es como está especificado en la documentación de flash, esto lo hacia hace bastante tal vez habrá cambiado... pero no creo...., proba haciendo un flash nuevo en blanco y que tenga el campo a mostrar la variable nomás, que tenga un solo frame la pelicula, tal vez te estes perdiendo en algún lado.

Para descartar errores en PHP abrí el flash con tu navegador web, asegurate que sea via server y agregale la variable atras para q te las muestre, ej: http://localhost/flash.swf?variable=valor

Una vez q te funcione así despúes utilizas PHP, notaste q en la version q te pase el nombre de flash esta seguido por un par la variable?, ojo todo esto probalo a nivel http, no se si a nivel file te permita acceder.

Cita:
Pienso que un valor recogido por $_POST es un valor html y FLASH no lee html sino php.
Como explicaste, las salidas php son html, pero Flash lee php como texto, o algo no he hecho bien.


No, vos sabes q estas confundido a mi criterio, PHP es solo un encapsulado que contiene en este caso código HTML, flash no lee ni PHP ni HTML, dependiendo con las funciones que trabajes flash lee XML o texto plano, el tema es que para lo que querés hacer y utilizar funciones como SendAndLoad o LoadVars deberás pasarle a PHP una session para que sepa a que te estas refieriendo pero justamente para q sepa esa sesion debes antes pasarla a Flash por lo que sería medio embano utilizarlo de esta forma, te grafico:

1.Navegador Busca Pagina ->
2.server recibe peticion ->
3.PHP se ejecuta->devuelve página ->
4.server responde a navegador ->
5.navegador recibe pagina ->
6.lee el código html ->
7.encuentra un flash ->
8.(via el metodo que te indique le pasas la sesion) ->
9.flash consulta otro PHP a traves de la funcion LoadVars y envia la sesion en la peticion ->
10.el otro PHP responde en texto plano header('Content-type: text/plain'); un conjunto de par claves, valores.(el formato es igual al archivo de texto q estas usando ahora) ->
11.Flash recibe los parametros lee los par clave valores y los carga ->
12.los imprimis donde convenga.

Por supuesto en vez de hacer esto te conviene mandar el par clave valor q necesitas direcamente en el paso 8 y te ahorras varios pasos y consultas.

Para ver lo que te digo crea un PHP así:
Código:
<?php
header('Content-type: text/plain');
echo "nmbr=hola";
?>


y ponele de nombre hola.php, en el flash cambia
Cargar.load("http://localhost/v3beta/videoconferencia.php"); por Cargar.load("http://localhost/v3beta/hola.php");

Ahí vas a comprobar q Flash si lee PHP.

Por favor notá que cuando dije:

Código:
Nom_txt.text = _root.nmbr;


es que elimines todo esto:

Código:
Cargar = new LoadVars();
Cargar.load("http://localhost/v3beta/videoconferencia.php");

Cargar.onLoad = function(exito)
{ if(exito)
{ Nom_txt.text = this.nmbr;
}
else
{ Nom_txt.text = "No se pudo";
}
}


y dejes lo anterior.

Espero que te sirva.

Saludos

yoreparodr

Reputación

comentario Jue Nov 29, 2007 9:59 pm
   
otra cosa en el PHP que te pase en el segundo mensaje reemplaza
Código:$Nombre = $_POST["nombre"]; por Código:$Nombre = (isset($_POST["nombre"])) ? $_POST["nombre"] : 'Anonimo';

Si te aparece en el flash el nombre Anonimo es porque estas pasando las variables vía GET o el campo de texto no se llama nombre.

Saludos[/code]

yoreparodr

Reputación

comentario del autor Vie Nov 30, 2007 7:16 pm
   
Gracias amigo, en cuanto pruebe lo que me dices te valoro tu aporte.
Seguimos en contacto, gracias.

David Fragoso Cháidez

Reputación

asistió a la solución Vie Dic 21, 2007 2:52 pm
   
David Fragoso Cháidez escribió:Amigos he estado buscando la forma de pasar valores de php a Flash mediante el objeto loadVars. Este es mi código Actionscript en Flash:

Cargar = new LoadVars();
Cargar.load("http://localhost/v3beta/videoconferencia.php");

Cargar.onLoad = function(exito)
{ if(exito)
{ Nom_txt.text = this.nmbr;
}
else
{ Nom_txt.text = "No se pudo";
}
}

Este es mi código php:
$Nombre = $_POST["nombre"];

echo "<embed src = 'Videoconferencia1_Conferencista.swf' autostart = 'true' quality = high pluginspage = 'http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type = 'application/x-shockwave-flash' width = '1024' height = '768' name = 'pizarra_ie' id = 'pizarra_ff'></embed>";

echo utf8_encode("&nmbr=".$Nombre."&");

y el campo de texto Nom_txt me muestra "Undefined".
Ya logré cargar variables desde un archivo de texto pero en php no funciona y en todos los foros dice que sí.
Lo he probado con el AppServ y con el Centos y nada...

¿Alguna opinión amigos?
Gracias


Hola, hace un tiempo mi sobrino vino con la misma inquitud y yo le propuse usar otra forma,
Usar el loadVariablesNum
investiga bien como funciona el loadVariablesNum y veras que es mucho mas practico

te adjunto unos archivos que hice para ajudarte. tengo un rato de tiempo y hace calor para salir asi que tome mi flash8 y te hice algo para ver si te soluciona el problema.

te puse todos los archivos necesarios.
si te das una maña vas a poder cargar desde una base de datos como mysql... sin problemas, yo lo hice para un sitio de españa y anda de maravillas.

ojo... esto es una ejemplo basico.

Saludos
Ferko (san lorenzo, santa fe, argentina)

loadvariables.rar  (11,92 kb) - incuye el archivo fla, el swf y dos archivos PHP para que veas como guardar desde el falsh en un archivo y como levantar los datos desde el php o lo que necesites.

ferko

Reputación

comentario Dom Dic 23, 2007 3:29 pm
   
Sería interesante David que nos digas que te ha servido ya que te estamos contestando dos cosas distintas, y como dices la experiencia de uno nos sirve a todos, las variables las necesitas en un tiempo de ejecución o en dos tiempo...

Comentanos si te ha funcionado alguna alternativa.

Saludos,
Martín

yoreparodr

Reputación

comentario del autor Mie Dic 26, 2007 12:45 pm
   
Perdón por el retraso... se me acumuló el trabajo y no he tenido tiempo de probarlo, pero ahora pruebo las 2 opciones y les paso la voz amigos...
Gracias

David Fragoso Cháidez

Reputación

comentario del autor Jue Dic 27, 2007 2:28 pm
   
Gracias Martín, creo que me confundí y hacía lo que me decías a medias, hasta que me aclaraste que eliminara la parte de LoadVars... jajaja
Hice nuevos archivos de prueba que funcionaron al pelo. Los adjunté...

En cuanto al tu aporte ferko voy a probarlo y te paso la voz...
Gracias amigos

php_flash.rar  (7,24 kb) - Comunicación php->flash

David Fragoso Cháidez

Reputación

comentario del autor Jue Ene 03, 2008 3:02 pm
   
Ya probé tu propuesta ferko y es interesante pero lo que yo quería evitar es el tener que escribir en un archivo porque el administrador del servidor no me da ese privilegio.

Gracias de todos modos, me va a servir en un futuro (cuando me den privilegios de escritura jeje)

David Fragoso Cháidez

Reputación

asistió a la solución Jue May 15, 2008 3:24 am
   
Hola a todos, nadie ha podido solucionar el problema de la variable indefinida. todos dice es que funciona pero eso no sirve. les dejo un codigo sencillo a ver si damos solucion a eso.
//ARCHIVO PHP

<?php
echo "&contenido=".$email;
?>

//ARCHIVO FLASH

boton.onRelease = function(){
var enviamosInfo:LoadVars = new LoadVars();
var recibimosInfo:LoadVars = new LoadVars();

enviamosInfo.email = varEmail;
enviamosInfo.sendAndLoad("sendAndload.php",recibimosInfo);

recibimosInfo.onLoad = function(){
validacion = recibimosInfo['contenido'];
//o asi validacion = recibimosInfo.contenido;
trace(validacion);

}
}

adjunto archivos

load.rar  (21,12 kb) -

adairjose

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos