Comunidad de diseño web y desarrollo en internet online

Pasar parametro de swf cargado al swf contenedor!!

Citar            
MensajeEscrito el 10 Mar 2009 07:50 pm
Un saludo gente!!

Tengo un par de dudas a ver si me las pueden aclarar.

Les cuento, estoy armando un pequeño site en flash, el site esta tiene la siguiente estructura, main(con un tamaño espesifico, supogamos 550x400), dentro de main tengo content((Sprite) con un tamaño 400x400), todas las secciones del site se cargan como swf en content, pero uno de esos contenidos es una galeria, yo necesito que al hacer click sobre uno de los item o fotografias, la galeria iguale su tamaño al del main!!

estructura del site:

main(swf principal)
¡
contenedor(Sprite)
¡
contenido_1(swf)
¡
contenido_2(swf)
¡
galeria(swf)



Es posible pasar un parametro desde el swf(Galeria) al main y modificar el tamaño y pocicion del objeto content(Sprite)?!

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 10 Mar 2009 08:57 pm
Hay muchas maneras yo te voy a decir dos que por ahi te sirvan.
Suponete que tenes el movieclip superior, y el movieclip que cargaremos. pongamosle mc1 y mc2 siguiendo el orden en los nombre.
mc1 Carga el mc2.
1) Podes pasarle un puntero del mc1 al mc2 q apunte al mc1.
Creas una variable public en el mc2 llamada vRoot y de tipo MovieClip:
public var vRoot:MovieClip;
esto es si estas programando desde el .as, si programas desde la linea de tiempo cosa q no recomiendo es:
var vRoot:MovieClip;

Luego en el mc1 creas una funcion que se ejecute al cargar el UIloader o lo que uses y que modifique ese apuntador (vRoot) para que apunte al mc1.
Suponiendo que tenemos un UIloader llamado cargadorUI en el flash la funcion que se ejecute cuando termina de cargar seria:

Código :


private function cargaCompletada(e:Event){
   e.target.removeEventListener(Event.COMPLETE, cargaCompletada); // Se elimina el listener si no va a volver a utilizarse
   e.target.content.vRoot = this; //aca lo q hacemos es cambiar la variable vRoot creada en el mc2 para q apunte al mc1
}
cargadorUI.addEventListener(Event.COMPLETE, cargaCompletada);


De esta forma para acceder al mc1 desde el mc2, solo bastara con usar vRoot, por ejemplo para acceder a una variable publica del mc1 llamada laVariable desde el mc2 se haria asi:
trace(vRoot.laVariable);

La otra forma es igual a esta pero la diferencia q en vez de pasarle el apuntador en la funcion cargaCompletada, se le pasa directamente la medida o las variables q necesitemos.
por ejemplo para pasar el ancho y alto, creamos en el mc2 dos variables publicas llamadas vAlto y vAncho.
En lña funcion cargaCompletada reemplazamos e.target.content.vRoot = this; por:

Código :


private function cargaCompletada(e:Event){
   e.target.removeEventListener(Event.COMPLETE, cargaCompletada); // Se elimina el listener si no va a volver a utilizarse
   e.target.content.vAncho = this.width; //enviamos el ancho de el movieclip
   e.target.content.vAlto = this.height; //enviamos el alto de el movieclip
}
cargadorUI.addEventListener(Event.COMPLETE, cargaCompletada);


No se si fui muy claro, pero espero poder ayudarte
Saludos
agustin

Por agucapobianco

32 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Mar 2009 09:14 pm
Muchas gracias, creo haber entendido el principio voy a probar y luego comente el resultado, si logre o no hacerlo funcionar!!

Por wasserfrauen

28 de clabLevel



 

Venezuela

firefox

 

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