Comunidad de diseño web y desarrollo en internet online

llamar funciones en el nivel principal desde un nivel inferi

Citar            
MensajeEscrito el 27 Mar 2008 02:30 am
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.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2008 04:38 am
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''.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2008 09:23 am
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

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Mar 2008 03:01 pm
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();

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2008 03:07 pm
¿A carga a B?
¿B carga a A?
¿Están en el mismo nivel?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Mar 2008 05:04 pm
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.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Mar 2008 07:48 pm
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. :)

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

safari
Citar            
MensajeEscrito el 28 Mar 2008 07:58 pm
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

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Mar 2008 08:04 pm
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 :)

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

safari

 

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