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

¿Cómo conectar dos MovieClips externos?

Estas en el tema de ¿Cómo conectar dos MovieClips externos? en el foro de Flash y Actionscript en Foros del Web. Qué tal, estoy creando un sitio web con un SWF cargador, lo que hace es cargar dos SWF externos usando un MovieClipLoader Este es el ...
  #1 (permalink)  
Antiguo 14/04/2008, 14:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 10 años
Puntos: 0
¿Cómo conectar dos MovieClips externos?

Qué tal, estoy creando un sitio web con un SWF cargador, lo que hace es cargar dos SWF externos usando un MovieClipLoader
Este es el código:

Código:
var precargador_mc1:MovieClipLoader = new MovieClipLoader();
var precargador_mc2:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadStart = function (target_mc) {
   _root.attachMovie("ProgressBar","barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = 350;
   _root.barra_mc._x = 650;
}
listener.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.barra_mc.gotoAndStop(porcentaje);
   target_mc._visible = false;
   target_mc.stop();
   _root.barra_mc.numero_txt.text = porcentaje + " %";
}
listener.onLoadComplete = function (target_mc) {
   _root.barra_mc.removeMovieClip();
   target_mc._visible = true;
   target_mc.play();
}
precargador_mc1.addListener(listener);
contenido_mc.onEnterFrame = function() {
   precargador_mc1.loadClip("contenido.swf", contenido_mc);
}
precargador_mc2.addListener(listener);
header_mc.onEnterFrame = function() {
   precargador_mc2.loadClip("header.swf", header_mc);
}


Funciona muy bien, pero lo que quiero es que el SWF header tenga un STOP en el primer frame para que cuando el SWF contenido lea su ultimo frame le de a Play a "header"... intenté con el siguiente código puesto en el último frame de "contenido":

Código:
this.onEnterFrame = function() {
   _parent.header_mc.gotoAndPlay(13);
}

pero no funciona... también probé usando "_root" en lugar de "_parent" y también probé usando "precargador_mc2" en lugar de "header_mc" y nada, es obvio que no se usar muy bien lo de _parent y _root todavía, por eso le pido a alguno de todos los sabios de acá que me pueda desasnar y así no volver a molestar con algo que parece tan simple pero que para mi es complicado.
Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 14/04/2008, 17:08
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 8 meses
Puntos: 22
Re: ¿Cómo conectar dos MovieClips externos?

Hola,
El primer problema que tienes es que estás utilizando el mismo LISTENER para los 2 clips que cargas con LOADCLIP. Es decir que ambos clips ejecutan la misma función y además lo están haciendo a la vez. Deberías cargar primero el CONTENIDO y en SU EVENTO onLoadComplete, es decir cuando se haya cargado por completo, ponerle la carga del swf HEADER. De esta forma, te aseguras que los eventos no se solapan y que se cargan los SWF en el orden que quieres.

Si no te ha quedado muy claro porque no me he explicdo bien, me lo dices y retoco tu código para mostrarte dónde aplicaría los cambios.

Saludos
  #3 (permalink)  
Antiguo 14/04/2008, 17:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 10 años
Puntos: 0
Re: ¿Cómo conectar dos MovieClips externos?

Gracias Exangel, lo entendi a medias la verdad, me ayudaria mucho si modificás el código... y ahora leyendo este post me acordé que hace un par de meses tuve un problema similar que nadie me pudo ayudar, no era exactamente este problema, sino que es el que me va a surgir cuando solucione esto que estoy preguntando ahora... me gustaria que saber como hacer para que cuando le doy a un boton en el SWF "header" se cargue otro SWF en "contenido"...ya que a header lo quiero usar como navegador y a contenido lo quiero usar para mostrar el contenido de la web que se va a ir abriendo con la interacción con el "header"... si podés ayudarme con eso también te agradeceria muchisimo, porque la otra vez no pude solucionarlo para nada
  #4 (permalink)  
Antiguo 14/04/2008, 17:59
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 8 meses
Puntos: 22
Re: ¿Cómo conectar dos MovieClips externos?

A continuación te pongo el código. He alterado algún orden así como he BORRADO los EVENTOS onEnterFrame que molestaban más que otra cosa. No lo he probado porque para ello tendría que generar las otras películas y la estructura de CLIPS que tienes. El código:

var precargador_mc1:MovieClipLoader = new MovieClipLoader();
var precargador_mc2:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
var listener_2:Object = new Object();
listener.onLoadStart = function (target_mc) {
_root.attachMovie("ProgressBar","barra_mc", _root.getNextHighestDepth());
_root.barra_mc._y = 350;
_root.barra_mc._x = 650;
}
listener.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
var porcentaje:Number;
porcentaje = Math.round((loadedBytes*100)/totalBytes);
_root.barra_mc.gotoAndStop(porcentaje);
target_mc._visible = false;
target_mc.stop();
_root.barra_mc.numero_txt.text = porcentaje + " %";
}
listener.onLoadComplete = function (target_mc) {
_root.barra_mc.removeMovieClip();
target_mc._visible = true;
target_mc.play();
precargador_mc2.loadClip("header.swf", header_mc); //ESTO CARGA EL HEADER
delete listener
}
listener_2.onLoadStart = function (target_mc) {
_root.attachMovie("ProgressBar","barra_mc", _root.getNextHighestDepth());
_root.barra_mc._y = 350;
_root.barra_mc._x = 650;
}
listener_2.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
var porcentaje:Number;
porcentaje = Math.round((loadedBytes*100)/totalBytes);
_root.barra_mc.gotoAndStop(porcentaje);
target_mc._visible = false;
target_mc.stop();
_root.barra_mc.numero_txt.text = porcentaje + " %";
}
listener_2.onLoadComplete = function (target_mc) {
_root.barra_mc.removeMovieClip();
target_mc._visible = true;
target_mc.play();
delete listener_2
}

precargador_mc1.addListener(listener);
precargador_mc2.addListener(listener);
precargador_mc1.loadClip("contenido.swf", contenido_mc);
  #5 (permalink)  
Antiguo 14/04/2008, 18:02
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 8 meses
Puntos: 22
Re: ¿Cómo conectar dos MovieClips externos?

Sobre el otro tema del HEADER como navegador, tengo un ejemplo en mi página web con el FLA para descargar: www.programador-php.com

Tienes que ir a PROGRAMADORES/ Flash dinámico con PHP o ASP / Menú dinámico simple.

Ahí tienes un ZIP con el modelo de menú dinámico que carga peliculas externas.
Saludos
  #6 (permalink)  
Antiguo 17/04/2008, 09:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 10 años
Puntos: 0
Re: ¿Cómo conectar dos MovieClips externos?

Gracias por la pronta respuesta exangel, estuve probando lo que me pasaste pero creo que todavia soy un poco duro con esto de AS, no me funciona, mirá, subi los FLA (version CS3 pero AS2) a esta dirección: www.guillongraficado.com.ar/web_grinberg.rar
para ver si podes verlo ahí y saber que es lo que estoy haciendo mal... me han dicho que puede ser que el onEnterFrame que puse en el ultimo frame del clip contenido hace que mande el gotoAndPlay cada 30 frame por segundo... podría ser también un problema eso a pesar de estar en Stop ese frame??
Muchas gracias por tu ayuda.
Saludos.
  #7 (permalink)  
Antiguo 17/04/2008, 11:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 10 años
Puntos: 0
Re: ¿Cómo conectar dos MovieClips externos?

Creo que lo solucioné... y creo que de manera muy artesanal :-s.
Lo que hice fue usar el código que me pasaste vos Exangel para los cargadores y al ante ultimo frame del SWF cargador le puse este código:
Código:
if (this._currentframe == 110) {
	this.nextFrame();
	_root.header_mc.gotoAndPlay("sin_botonera");
}
y en el ultimo frame le puse un STOP... y ahora funciona tal como quiero... el tema era porque al SWF contenido después se le van a agregar varias fotos pasando en transición, entonces como iba a tardar más en cargar necesitaba que en determinado frame se diera play al encabezado.
No se si mi código está bien o es muy artesanal... pero bueno, al menos para mis propósitos sirve.
Saludos.
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 05:37.