Cristalab

llamar funciones en el nivel principal desde un nivel inferi

   Foros de discusión -> Flex, Actionscript 3 y AIR (Apollo)
Mensaje Autor
Mensaje Publicado: Jue Mar 27, 2008 2:30 am     Citar   firefox 
Agradezco cualquier sugerencia acerca de como realizar esto:

Tengo una swf principal "A" y alli cargo -en un contenedor del tipo MovieClip- un swf externo "B".
Lo que necesito es que cuando la animación del swf "B" alcance cierto fotograma "A" me descargue "B".

Una pregunta similar pero mas general sería:
Como puedo, desde un swf cargado externamente ("B"), llamar una función escrita en el swf principal ("A").

Gracias de nuevo por su ayuda.

leonfcs


clabLevel: 8 Genero:Masculino



MP Email         
Volver arriba
Mensaje Publicado: Jue Mar 27, 2008 4:38 am     Citar   firefox 
ok, ya se como descargar el swf ¨B¨.

Pero sigo sin saber si puedo llamar desde "B" una función escrita en la linea de tiempo de ''A''.

leonfcs


clabLevel: 8 Genero:Masculino



MP Email         
Volver arriba
Mensaje Publicado: Jue Mar 27, 2008 9:23 am     Citar   firefox 
Igual que en AS2, para subir un nivel usas parent, dos niveles, parent.parent , etc
Para ir a la raiz, usas root.
Lo que cambia es que ya no usas guión bajo al principio (_parent, _root)

Jorge
 _________________
http://www.flash-db.com

solisarg


clabLevel: 567 Genero:Masculino
Argentina


MP Web         
Volver arriba
Mensaje Publicado: Jue Mar 27, 2008 3:01 pm     Citar   firefox 
pues no he dado con esto. Por ejemplo si tengo en el primer frame del swf principal "A" una funcion llamada:

funcionX():void
{
trace( "funcionX activada")
}


podría llamar esta función desde un frame del swf "B" cargado externamente? algo así como:
en el frame 10:
funcionX();

leonfcs


clabLevel: 8 Genero:Masculino



MP Email         
Volver arriba
Mensaje Publicado: Jue Mar 27, 2008 3:07 pm     Citar   firefox 
¿A carga a B?
¿B carga a A?
¿Están en el mismo nivel?

Jorge
 _________________
http://www.flash-db.com

solisarg


clabLevel: 567 Genero:Masculino
Argentina


MP Web         
Volver arriba
Mensaje Publicado: Vie Mar 28, 2008 5:04 pm     Citar   firefox 
listo, ya la tengo. Puse la función en la linea principal de "A". "A" carga a a "B" con un Loader y en "B" llamé a la funcion con:

with (parent.parent)
{
this.parent.parent.funcionX()
}


En realidad muy sencillo.

leonfcs


clabLevel: 8 Genero:Masculino



MP Email         
Volver arriba
Mensaje Publicado: Vie Mar 28, 2008 7:48 pm     Citar   safari 
Yo te recomiendo que en lugar de hacer eso con los parents, mejor despaches un evento burbuja en el clip hijo, (que como sabemos los eventos burbuja se propagan hacia el root por la jerarquía), y pues solo has de colocar un listener a ese evento tuyo en el padre y listo, es más elegante y desacoplado. Sonrisa
 _________________
La información es el poder y el arma definitiva.

MorphX
SWAT Team

SWAT
clabLevel: 974 Genero:Masculino
La Telaraña Digital
2 Tutoriales
1 Tips

MP         
Volver arriba
Mensaje Publicado: Vie Mar 28, 2008 7:58 pm     Citar   firefox 
Suena bien. Pero como es eso de despachar eventos burbuja? En donde puedo encontrar información, tutorial o cualquier guía para aprender eso? Soy novato en esto del actionscript 3.

Saludos

leonfcs


clabLevel: 8 Genero:Masculino



MP Email         
Volver arriba
Mensaje Publicado: Vie Mar 28, 2008 8:04 pm     Citar   safari 
ClipA padre de ClipB

Código :



ClipB.dispatchEvent(new Event("eventodeB",true));  //el true activa el modo de propagacion burbuja :)

///Padre
ClipA.addEventListener("eventodeB",funciondetratamiento);

private function funciondetratamiento(evt:Event){
//tratamiento en el padre
}


Busca en la ayuda sobre la clase Event Sonrisa
 _________________
La información es el poder y el arma definitiva.

MorphX
SWAT Team

SWAT
clabLevel: 974 Genero:Masculino
La Telaraña Digital
2 Tutoriales
1 Tips

MP         
Volver arriba
Responder al tema    Foros de discusión -> Flex, Actionscript 3 y AIR (Apollo) Todas las horas son GMT
Página 1 de 1

Respuesta Rapida

  Citar el ultimo mensaje
Adjuntar tu firma

Mostrar mensajes de anteriores:
  

 


Cristalab BloodBerry Style © 2006 Cristalab
Powered by phpBB © 2001, 2002 phpBB Group