Comunidad de diseño web y desarrollo en internet

linkear, unir o dar acciones en swf externos

Citar            
MensajeEscrito el 04 Nov 2008 11:11 pm
Hola a esa banda de Cristalabs, escribo porque necesito algo de orientación.

Tengo un archivo en el que se cargan 5 swf mediante loadMovie y quisiera saber si se pueden mandar acciones entre ellos ya que cuando pulsas alguno de ellos los demás realizan una animación.

Ya intente mediante un localConecction pero solo pude que uno de ellos hiciera el gotoAndPlay.

Si alguien me pudiera dar un tip o decirme como mas o menos se puede hacer.

Saludos!!!

Por Yorxilla

3 de clabLevel



 

2008

chrome
Citar            
MensajeEscrito el 05 Nov 2008 06:36 am
¿Los cinco archivos se cargan en un swf o en un html?

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 05 Nov 2008 10:48 am
Hola! :)

Es mucho más fácil que eso. Digamos que, tienes el archivo principal que se llama madre.swf, madre, lee a hijo1,hijo2,hijo3,hijo4,hijo5, yo haría la lectura así (aunque es mejor usar MovieClipLoader, pero tu preguntaste con loadMovie, {si quieres aprender a usar MovieClipLoader, ve la firma de TheFricky} asi que ahi está):

Código ActionScript :

loadMovie("hijo1.swf", "contenedor1");
loadMovie("hijo2.swf", "contenedor2");
loadMovie("hijo3.swf", "contenedor3");
loadMovie("hijo4.swf", "contenedor4");
loadMovie("hijo5.swf", "contenedor5");

En donde obviamente, contenedor1, contenedor2, contenedor3, contenedor4, contenedor5, son movieclips con ese nombre de instancia.

Ok, hasta aquí todo bien, supongo.

Despues, tus archivos, los tienes que comunicar especificando sus rutas, por ejeeemplo. Si quiero que al darle click a un botón que se llama miBoton que tengo dentro del hijo1.swf, y quiero que este, le diga "algo" a todos los demás, las acciones en madre.swf, irían así:

Código ActionScript :

contenedor1.miBoton.onRelease = function () {
 _root.contenedor2.gotoAndPlay(2);
 _root.contenedor3.gotoAndPlay(2);
 _root.contenedor4.gotoAndPlay(2);
 _root.contenedor5.gotoAndPlay(2);
}

Y ya!

Espero que te sirva, la magia de esto está en las rutas, revisa _root y revisa _parent en el buscador del foro o en la ayuda de flash.

Saludos!!

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 29 Mar 2009 03:08 pm
Hola a todos, yo tengo un problema parecido: en el swf pirncipal (index), estoy cargando 7 swf externos y necesito comunicarlos entre ellos.
La soluciòn de violetisha es lo que necesito, pero no me funciona.
Estoy cargando el swf musica dentro del contenedor musica en la swf pirncipal (index). Dentro del swf musica hay un boton (miboton) que debe dar play a los a los otros 6 swf cuando le doy click al boton.
Abajo pongo el còigo que estoy usando para cargar los swf.
No se si està muy clara la informaciòn. Alguien me puede ayudar?

Gracias de antemano.

Código :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
   clip._visible = false;
   clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
   porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
   porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
   preload.gotoAndStop(porcentajeTotal);
   preload.cargando.text = "Loading: " + list_nombres[cargando];
}
function onLoadInit(clip:MovieClip)
{
   cargando++;
   cargaMultiple();
}
//--------------------------
function cargaMultiple(queX:Number, queY:Number)
{
   if (!cargando) {
      cargando = 0;
      this.attachMovie("preload", "preload", this.getNextHighestDepth());
      preload._x = queX;
      preload._y = queY;
   }
   if (cargando < list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
   } else {
      for (i = 0; i < list_swfs.length; i++) {
         this[list_contenedor[i]]._visible = true;
         this[list_contenedor[i]].play();
      }
      removeMovieClip(preload);
   }
}
//--------------------------
var list_swfs:Array = ["E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 4.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 0.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 5.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 6.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 2.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 1.swf", "E:/Proyectos/Acrata/AcrataRock/Parlantes/Parlante 3.swf", "E:/Proyectos/Acrata/AcrataRock/Musica/musica.swf"];
var list_contenedor:Array = ["fot4", "menu1", "fot2", "fot3", "fot1", "menu2", "menu3", "musica"];
var list_nombres:Array = ["Intro", "musica"];
cargaMultiple(380, 450);
//--------------------------

Por PierGuason

25 de clabLevel



 

msie7
Citar            
MensajeEscrito el 29 Mar 2009 04:27 pm
Hola PierGuason.

Y cuál es el código que utilizas para asignarle las acciones al botón? Ahí es donde debe estar el error. ^^

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 02 Abr 2009 02:41 pm
Hola, como estas?

Estoy colocando esta acciòn en el swf principal:

Código :

musica.miboton.onRelease = function () {
    _root.fot1.gotoAndStop(2); 
}


en el botòn no tengo ninguna acciòn.

sabès donde està el error? me puedes ayudar?

mil gracias...

Por PierGuason

25 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Abr 2009 05:50 pm
Hola,

Pues según tu mensaje anterior,
Estoy cargando el swf musica dentro del contenedor musica en la swf pirncipal (index). Dentro del swf musica hay un boton (miboton) que debe dar play a los a los otros 6 swf cuando le doy click al boton.


Entooonces, el code no debería ser algo así:

Código ActionScript :

musica.miboton.onRelease = function () {
    _root.fot4.play(); 
    _root.fot2.play();
    _root.fot3.play(); 
    _root.fot1.play(); 
}


Saludos.

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 02 Abr 2009 06:53 pm
Hola violetisha,

gracias por tu ayuda, pero sigue sin funcionar. En realidad el problema no es la propiedad que le asigno, ya que eso se com hacerlo (ya sea gotoandplay, play, gotoandstop, ir a un frame especifico, etc).
El problema que tengo es que con cualquier accion que le ponga, al darle click al boton es como si nada. Nunca reproduce los otros swf:
Te resumo:
Swf principal (index) - carga:
swf musica (mc musica)
parlante2 (mc fot1)
parlante3
parlante4
..... y asì hasta parlante 6.

Si puedo hacer que funcione para un swf, ya se como hacer para el resto. asi para no escribir el codigo para los 6 swf, lo escribo para 1 solo, si funciona ahì le agrego las otras lineas (esto no es importante, es solo para ahorrarme tiempo). El tema es que no funciona para ningùn swf.

Código :

musica.miboton.onRelease = function () {
    _root.fot1.play(); 
}


intentè con esto y tampoco funciona.

Importante: no estoy usando loadMovie sino MovieClipLoader. ese puede ser el problema?

puedes ayudar? gracias de antemano.

Por PierGuason

25 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2009 09:32 am
hola tengo un problema al mandar valores de un swf (hijo) a el swf (padre). Hijo se encuentra en un "container" dentro de padre.

Me gustaría que cada que clickeo un boton (especifico) en swf padre, cargue a un hijo (especifico) y éste a su vez mande una variable a padre.

Tengo algo así en el padre:

Código :

_global.indicador='no'                          //variable global

stop();
loadMovie("main.swf", contenedor);       //carga la pelicula en el container que está en el padre (index.swf)

if (_global.indicador!='ok'){
loadMovie("falla.swf",contenedor);         //carga otro swf dependiendo del valor que recibio de hijo

}

en el hijo tengo algo como:

Código :

_global.indicador='ok'


Ya cambié en el hijo _global.indicador por _root.indicador y indicador y nomás que no funciona, no me asigna la variable en el hijo.

Este sólo es un ejemplo sencillo, pero con estó podré sacar o demás que me aqueja...

Gracias por la ayuda

Por imux

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2009 06:09 pm
Hola imux,

Checaste lo que te mandé??

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 15 Nov 2009 03:16 am
Holas holas:

Chequé lo que me mandaste, gracias por la ayuda violetisha, pero tal vez me expresé mal, pongo lo que me mandaste:

En padre:

Código :

var MiVariable:String = ""; //declaramos la variable con el valor inicial
loadMovie("hijo.swf",_root.contenedor); //cargamos el hijo


En hijo:

Código :

boton.onRelease = function () { //el boton que le pasará la variable al swf padre
   MiVariable = "holas"; //el nuevo valor
   _root.textoQueLee.text = MiVariable; //hago que lo muestre en este campo de texto, que por cierto está en el swf padre
}


La cuestión es que no quiero asignar el valor "MiVariable" a alguna cosa en hijo, sino en hijo tener algo como esto: MiVariable = algonuevo, para que padre la vea y maneje con un nuevo valor, es decir, hijo modifica esa variable para que padre la use modificada nuevamente. Por eso despues de cargar la pelicula, en mi post anterior hacía "la validación" de que si la variable ya tenía otro valor, pero siempre se queda con el valor que le he asignado en padre.


Gracias por la ayuda, espero que puedas hecharme la mano.

Bye, bye

Por imux

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Nov 2009 06:55 am
Hola imux,

La validación que pones, no tiene sentido, dice:

Código ActionScript :

_global.indicador='no' //variable global
stop();

loadMovie("main.swf", contenedor);       //carga la pelicula en el container que está en el padre (index.swf)

if (_global.indicador!='ok'){ // ahorita, "indicador" tiene el valor "no", el cual, es diferente de "ok", por lo que lo va a ejecutar
loadMovie("falla.swf",contenedor);         //carga otro swf dependiendo del valor que recibio de hijo --- en ningun momento le estás diciendo que reciba algo del hijo antes de ejecutar esta validación.
}


Entoooonces, no es que no se esté pasando la variable, sino que todo se ejecuta antes de que ésta llegue.

Qué es exactamente lo que quieres hacer? Que detecte si se cargó la pelicula o no??

Saludos.

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 15 Nov 2009 10:48 am
Hola de nuevo, sólo tenganme un poquito de paciencia, es que no veo la lógica de ActionScript aún, era mucho más facil para mí programar en Fortran o C++, y ahora se me dificulta. :cry:

Duda: no se supone que cuando ejecuto la linea:

Código :

loadMovie("main.swf", contenedor);


se ejecuta lo que tiene "main.swf" así como el código contenido en éste? En este caso:

Código :

_global.indicador=nuevovalor


y ya despues de que se supone que se cargó la película y se ejecuto el código de "main.swf", veo el valor o lo mando a "index.swf" o swf padre, al menos así lo veo yo, de una forma secuencial, pero tal vez mi razonamiento esté algo torcidito...

:oops:

Gracias por la ayuda nuevamente.

Por imux

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 May 2015 10:51 pm
Hola:
tengo un swf padre que carga un swf hijo, ejecuto el swf padre funciona bien, pero cuando quiero insertar el swf padre en una pagina con html, el swf padre funciona, pero el swf hijo que esta dentro del swf padre no se carga...como puedo solucionar esto

Por capaz10

0 de clabLevel



 

chrome

   Página 1 de 1

 

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