Foros del Web » Creando para Internet » Flash y Actionscript »

loadMovie() con variable

Estas en el tema de loadMovie() con variable en el foro de Flash y Actionscript en Foros del Web. Hola a todos, quiero hacer algo super simple: 1.- recibir una variable por URL 2.- crear un string concatenando texto y el contenido de esa ...
  #1 (permalink)  
Antiguo 08/09/2008, 09:41
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
loadMovie() con variable

Hola a todos, quiero hacer algo super simple:

1.- recibir una variable por URL
2.- crear un string concatenando texto y el contenido de esa variable
3.- hacer loadMovie() utilizando la variable creada como nombre del swf.

Vengo de PHP y no se como programar en AS pero supongo que será parecido, así que buscando por internet encontre información y lo he montado de la siguiente manera:

1.- En el html que llama al swf ,en el atributo src de la etiqueta object, escribo scr="cargacont.swf?lang=es".

2.- el código de cargacont.swf es:

Código:
var lang:String = _root.lang; //para captar la variable lang del URL
var nomConte:String = "conteprensa_";
nomConte += lang;
nomConte += ".swf";

loadMovie(trace(nomConte), 1); // aquí es donde me pierdo, he probado poniendo nomConte directamente y tampoco funciona.
3.- mis swf's que voy a cargar se llaman contaprensa_es.swf y contaprensa_en.swf


Lamnetablemente no funciona y no tengo ni idea, que estoy haciendo mal???

Es para ayudar a un amigo que sabe animar en flash, pero de AS está más perdido que la mamá de Marco, y está creando un fichero para cada idioma, cuando por variables puedes crear uno solo.

Gracias de antemano por la ayuda.

Saludos

Carlos
  #2 (permalink)  
Antiguo 09/09/2008, 06:32
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años, 7 meses
Puntos: 22
Respuesta: loadMovie() con variable

Hola,
Para recoger una variable enviada por GET dentro de un FLASH, ttienes que usar la propiedad "_url" de AS. Te lo escribo:

elquery=_root._url.split("?");
lang=a[1];

En la etiqueta OBJECT te vale con poner:

scr="cargacont.swf?es

Mírate en la ayuda de FLASH y verás la definición de la propiedad "_url"

Saludos
__________________
Compartir es vivir
www.programador-php.com
  #3 (permalink)  
Antiguo 10/09/2008, 04:09
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

gracias, la primera parte ya está hecha, logro coger la variable de la url, y la he logrado mostrar en un texto dinámico y perfecto.

Ahora lo que no me funciona todavia es el LoadMovie.

En la etiqueta OBJECT, tengo esto: value="cargaprensa.swf?XX"

En mi swf tengo esto:

Código PHP:
elquery _root._url.split("?");
lang=elquery[1]; //esto guarda XX en lang

var nomConte:String "conteprensa_"
nomConte += lang;
nomConte += ".swf";
var 
lang_field nomConte// lang_field es el nombre de la variable del texto dinámico y muestra "conteprensa_XX.swf"

loadMovie(nomConte1); // esto es lo que no funciona...!!!
// tambien he probado con loadMovie(trace(nomConte), 1); y no funciona 
Obviamente los ficheros "conteprensa_XX.swf" están en la misma carpeta que el cargaprensa.swf.

Si escribo directamente loadMovie("conteprensa_XX.swf",1); funciona, así que no tengo idea que pueda ser lo que está fallando.

Gracias por sus ayudas...

Saludos

Carlos
  #4 (permalink)  
Antiguo 10/09/2008, 21:02
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años, 7 meses
Puntos: 22
Respuesta: loadMovie() con variable

Hola,
Supongo que te has asegurado de poner el query en el OBJECT y en el EMBED del HTML.
Si es así, sólo se me ocurre que no lo estás probando en un navegador sino en el PLAYER de FLASH directamente. No lo sé. De todas formas, si lo está testando en un navegador, el TRACE no te tiene que salir porque es del entorno FLASH...

Te he puesto unos alerts en el código para que puedas testar qué variables está recogiendo:

elquery = _root._url.split("?");
lang=elquery[1];
getURL("javascript:alert('"+lang+"')");

var nomConte:String = "conteprensa_"
nomConte += lang;
nomConte += ".swf";
var lang_field = nomConte;

getURL("javascript:alert('"+nomConte+"')");
loadMovie(nomConte, 1);

Después de testar esto, tal vez sepamos qué está pasando...
Saludos
__________________
Compartir es vivir
www.programador-php.com
  #5 (permalink)  
Antiguo 11/09/2008, 04:04
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

Hola exangel,

No es necesario probar los alerts (aunque gracias, xq así es mas facil testear para la próxima) porque lo que he hecho es crear un texto dinámico al cual le he dado como nombre de variable "lang_field" y se muestra "nomCont" sin problemas (aparece: "conteprensa_XX.swf").

A tus dudas anteriores, estoy probando en el navegador IE6 y Firefox3 usando un servidor local localhost (ya que lo tengo montado en un php), este es mi php rsumido:


Código PHP:
<?php

$lang 
'en';
if ( isset(
$_GET['lang'])){
    
$lang $_GET['lang'];
}


// aqui van las etiquetas html: html, head, body, etc...

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
               
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
               
width="988" height="617">
        <
param name="movie" value="cargaprensa.swf?<?php echo $lang; ?>"
        <
param name="quality" value="high">
        <
param name="menu" value="false">
        <!--[if !
IE]> <-->
        <
object data="cargaprensa.swf?<?php echo $lang; ?>"
                
width="988" height="617" type="application/x-shockwave-flash">
         <
param name="quality" value="high">
         <
param name="menu" value="false">
         <
param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer">
         
FAIL (the browser should render some flash contentnot this).
        </
object>
        <!--> <![endif]-->
  </
object>

// aqui va el cierre del html

?>

Dentro del swf tengo esto y lang_field es la vaiable de un texto dinámico
Código PHP:
elquery _root._url.split("?");
lang=elquery[1];

var 
nomConte:String "conteprensa_";
nomConte += lang;
nomConte += ".swf";
var 
lang_field nomConte// para mostrar nomCont en un txt dinámico
loadMovie(nomConte1); 
solo falla el loadMovie() con variable, ya que si escribo: loadMovie("conteprensa_XX.swf", 1); funciona la perfección.


Si te sirve de algo, utilizo el flash CS3.

voy a subir un zip con los fla para que lo prueben.
  #6 (permalink)  
Antiguo 11/09/2008, 07:52
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años, 7 meses
Puntos: 22
Respuesta: loadMovie() con variable

Hola,
Por lo que veo en el PHP, la variable "$lang" en el PHP tiene como valor "en".
Por lo tanto estás escribiendo en el URL del OBJECT: "cargaprensa.swf?en"

Y por consiguiente, en el FLASH el query que recoges es "en" y no "XX".
Es decir que si estás concatenando "conteprensa_" +"en" (que es lo que recoges, obtienes "conteprensa_en"

no es así??
__________________
Compartir es vivir
www.programador-php.com
  #7 (permalink)  
Antiguo 11/09/2008, 08:49
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

sorry por no explicarme bien,

mi php recibe por variable dela siguiente manera:

prensa.php?lang=en
prensa.php?lang=es
prensa.php?lang=ru
prensa.php?lang=de

esto hace que prensa.php cargue, dependiendo de esa variable, lo siguiente:

cargaprensa.swf?en
cargaprensa.swf?es
cargaprensa.swf?ru
cargaprensa.swf?de

esto hace que cargaprensa.swf haga, dependiendo de esa variable, un loadMovie() con lo siguiente:

conteprensa_en.swf
conteprensa_es.swf
conteprensa_ru.swf
conteprensa_de.swf

esto es lo que quiero hacer, logro coger el valor XX (XX puede ser en, es, ru o de)
dentro de cargaprensa.swf, pero al cargarlos con loadMovie() no funciona.

He logrado hacerlo funcionar de una manera "sucia":

Código PHP:
elquery _root._url.split("?");
lang=elquery[1];

var 
nomConte:String "conteprensa_";
nomConte += lang;
nomConte += ".swf";
var 
lang_field nomConte// para mostrar nomCont en un txt dinámico

if (lang== "en"){ loadMovie("conteprensa_en.swf"1);  }
if (
lang== "es"){ loadMovie("conteprensa_es.swf"1);  }
if (
lang== "ru"){ loadMovie("conteprensa_ru.swf"1);  }
if (
lang== "de"){ loadMovie("conteprensa_de.swf"1);  } 


lo que quiero saber está en el título: loadMovie() con variable, porque no me funciona así.

Gracias por sus ayudas
  #8 (permalink)  
Antiguo 11/09/2008, 18:08
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años, 7 meses
Puntos: 22
Respuesta: loadMovie() con variable

Perdoname, no te había entendido.
Prueba a poner sólo este código:

elquery = _root._url.split("?");
lang=elquery[1];
loadMovie("conteprensa_"+lang+".swf");

A ver si dilucidadmos el misterio.
Saludos
__________________
Compartir es vivir
www.programador-php.com
  #9 (permalink)  
Antiguo 12/09/2008, 03:42
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

Nada, he puesto loadMovie("conteprensa_"+lang+".swf",1); porque me pide el segundo parámetro, pero nada.

he subido los fla para que le hechen una mirada.

http://www.sai-es.com/extranet/prueba/test.zip

Saludos y gracias

Carlos
  #10 (permalink)  
Antiguo 15/09/2008, 11:13
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

ninguna idea xq está fallando????

necesito saberlo xq el siguiente paso es leer texto desde xml, y que de ahí cargue un movie u otro (para los banner por ejemplo), que lea los textos, css, nombres de imagenes, etc, etc, para que sea más facil editarla si nos piden un cambio...

pero si esto tan simple no me sale.. no quiero ni pensar que pasará más adelante.

porfa necesito que me ayuden...

gracias
  #11 (permalink)  
Antiguo 14/11/2008, 23:04
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: loadMovie() con variable

JAJAJAJAJAJAA
PERDON POR LA RISA PERO TE COMPLICAS DEMASIADO TE EXPLICO:

PARA QUE TE DAS TANTAS VUELTAS

TU php recibe por variable dela siguiente manera:

prensa.php?lang=en
prensa.php?lang=es
prensa.php?lang=ru
prensa.php?lang=de

EN VES DE QUE CARGE ESTO

cargaprensa.swf?en
cargaprensa.swf?es
cargaprensa.swf?ru
cargaprensa.swf?de

HAS QUE CARGE DIRECTAMENTE:

conteprensa_en.swf
conteprensa_es.swf
conteprensa_ru.swf
conteprensa_de.swf

ES DECIR:

prensa.php?lang=en
LLAMARA A conteprensa_en.swf

EN VES DE PASAR POR conteprensa.swf?lang=EN

te ahorras espacio y aumentas velocidad de carga espero que me hayas entendido y yo averte entendido
  #12 (permalink)  
Antiguo 15/11/2008, 03:53
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años
Puntos: 3
Respuesta: loadMovie() con variable

Hola caposguantos,

Así ya lo tenemos ahora, lo malo de eso (el tener 4 swf distintos) es que si se quiere hacer una modificación en la animación, se tendría que hacer en los 4 swf en vez de uno solo, y la idea es ahorrar tiempo de edición, ya que la web completa no es un swf por idioma, sino, son por lo menos 20 swf's por cada idioma (20x4=80 swf's)

La idea de pasar esa variable es poder utilizarla dentro para que los textos sean cogidos de 4 XML distintos, pero solo tener 1 SWF

¿Porque dices que es más rápido sin variables??? ¿¿como que ahorras espacio si creo que un swf pesa menos que el mismo grabado 4 veces????

Saludos

Carlos


NOTA ADICIONAL: originalmente, lo que acabo de escribir es lo que quiero, pero he puesto el ejemplo del cargaprensa.swf que llame a los distintos conteprensa_XX.swf para probar, aparte, si utilizan un programa de descarga de webs, solo podrán bajarse el cargaprensa.swf y no el conteprensa.swf que contiene el contenido, por eso no puedo poner desde el php el conteprensa_XX.swf directamente
  #13 (permalink)  
Antiguo 12/08/2010, 19:38
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: loadMovie() con variable

el problema de fondo y el tema que se plantea es por que no se puede poner una variable dentro del loadmovie. Yo tengo el mismo problema.
  #14 (permalink)  
Antiguo 13/08/2010, 05:24
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años, 7 meses
Puntos: 22
Respuesta: loadMovie() con variable

Si te refieres a variables tipo query (?loquesea=xxxx). Pues no se pueden poner ya que no sirven de nada porque el SWF extero no las va a interpretar.

Supongo que hablamos de AS2. Si quieres que un SWF cargado por LOADMOVIE se comporte en función de una variable dada, sólo tienes que declarar la variable en el ROOT y antes de hacer LOADMOVIE, la estableces en el valor que quieras.
Luego, en el SWF cargado, testas ese valor y en función del mismo, haces lo que quieras.

Saludos
__________________
Compartir es vivir
www.programador-php.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:47.