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

Me aparece una barra de carga indeseada

Estas en el tema de Me aparece una barra de carga indeseada en el foro de Flash y Actionscript en Foros del Web. Que tal gente buena, estoy armando una web para un cliente y la prepare cargando SWF externos mediante MovieClipLoader, entonces tengo un SWF llamado "cargador", ...
  #1 (permalink)  
Antiguo 20/11/2008, 10:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Me aparece una barra de carga indeseada

Que tal gente buena, estoy armando una web para un cliente y la prepare cargando SWF externos mediante MovieClipLoader, entonces tengo un SWF llamado "cargador", otro llamado "botonera", otro llamado "galerias" y otro llamado "contenido".
En "cargador" tengo el código y los movieclips vacios que cargan los SWF externos de "botonera" (en un movieclip vacio con el mismo nombre de instancia) y "contenido" (en el movieclip vacio con el mismo nombre de instancia). Con la "botonera" hago que cargue el SWF "galerias" (tambien en el movieclip vacio con el mismo nombre de instancia) que contiene una lista de proyectos en el cual cada nombre de esa lista es un boton.
Bien, aquí está el problema, en el swf "galerias" puse un codigo que dice que cuando se clickea en uno de los nombres de la lista, en el _root, el clip que contiene el SWF "galerias" descargue ese clip y cargue un SWF nuevo llamado con el nombre clickeado y además, que en el _root, en el clip donde cargaba "contenido" cambie por otro swf con fotos de la obra seleccionada. Es ahí cuando surge el problema, porque aparece en la esquina superior de la ventana una barra de precarga que no se mueve ni desaparece, SI carga el SWF que quiero... pero además aparece esa barra que no debería aparecer. Estuve probando y noté que cuando pongo que al clickear cambie el clip de galerias por la galeria seleccionada no pasa nada, pero cuando agregué el código para que el clip de "contenidos" cambie es ahí cuando aparece la barra esta.
Copio parte del codigo para que se entienda mejor si alguien me peude ayudar, no lo pongo completo, solamente las partes necesarias:
CODIGO DEL SWF "CARGADOR"
Código:
var precargadorContenido_mc:MovieClipLoader = new MovieClipLoader();
var listenerContenido:Object = new Object();
listenerContenido.onLoadStart = function (target_mc) {
   _root.attachMovie("barra_contenido","barra_contenido_mc", _root.getNextHighestDepth());
   _root.barra_contenido_mc._y = 500;
   _root.barra_contenido_mc._x = 700;
   _root.barra_contenido_mc._yscale = 80;
   _root.barra_contenido_mc._xscale = _root.barra_contenido_mc._yscale;
   target_mc._alpha = 0;
};
listenerContenido.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.barra_contenido_mc.gotoAndStop(porcentaje);
   target_mc._visible = false;
   target_mc.stop();
   _root.barra_contenido_mc.texto_carga.numero_txt.text = porcentaje + " %";
};
listenerContenido.onLoadComplete = function (target_mc) {
   alfaCargador(0, _root.barra_contenido_mc, _root.barra_contenido_mc.texto_carga);
   target_mc._visible = true;
   alfaClip (100, target_mc);
   target_mc.play();
   if (_root.barra_contenido_mc.texto_carga._alpha = 0) {
      delete listener;
   }
};
precargadorContenido_mc.addListener(listenerContenido);
precargadorContenido_mc.loadClip("contenido.swf", contenido_mc);
Cabe aclarar que para cada swf que cargué le puse un listener y un MovieClipLoader diferente para tener mayor control en cada uno.

CODIGO DEl SWF "GALERIAS"
Código:
obras_mc.obra2_btn.onPress = function(){
   _root.galerias_mc.unloadClip();
   _root.precargadorGalerias_mc.addListener(_root.listenerGalerias);
   _root.precargadorGalerias_mc.loadClip("galerias/1_1/berlin_botonera.swf", _root.galerias_mc);   
   _root.contenido_mc.unloadClip();
   _root.precargadorContenido_mc.addListener(_root.listenerContenido);
   _root.precargadorContenido_mc.loadClip("galerias/1_1/berlin.swf", _root.contenido_mc);
};
Repito algo importante, si de este ultimo codigo que copio le saco las ultimas tres líneas la barra no aparece, así que el problema imagino que estara cuando cambio el SWF del movieclip vacio "contenido".
Si alguien me puede ayudar, le agradeceré muchísimo.
Saludos.
  #2 (permalink)  
Antiguo 02/12/2008, 07:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Me aparece una barra de carga indeseada

Nadie puede ayudarme?, ya no se que hacer, una vez en una web lei un poco del tema, pero no puedo volver a encontrarlo!!
AYUDA PLEASE!!!!!
  #3 (permalink)  
Antiguo 02/12/2008, 07:49
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 4 meses
Puntos: 51
Respuesta: Me aparece una barra de carga indeseada

Código PHP:
var precargadorContenido_mc:MovieClipLoader = new MovieClipLoader();
var 
listenerContenido:Object = new Object();
listenerContenido.onLoadStart = function (target_mc) {
   
_root.attachMovie("barra_contenido","barra_contenido_mc"_root.getNextHighestDepth());
   
_root.barra_contenido_mc._y 500;
   
_root.barra_contenido_mc._x 700;
   
_root.barra_contenido_mc._yscale 80;
   
_root.barra_contenido_mc._xscale _root.barra_contenido_mc._yscale;
   
target_mc._alpha 0;
};
listenerContenido.onLoadProgress = function (target_mcloadedBytestotalBytes) {
   var 
porcentaje:Number;
   
porcentaje Math.round((loadedBytes*100)/totalBytes);
   
_root.barra_contenido_mc.gotoAndStop(porcentaje);
   
target_mc._visible false;
   
target_mc.stop();
   
_root.barra_contenido_mc.texto_carga.numero_txt.text porcentaje " %";
};
listenerContenido.onLoadComplete = function (target_mc) {
   
alfaCargador(0_root.barra_contenido_mc_root.barra_contenido_mc.texto_carga);
   
target_mc._visible true;
   
alfaClip (100target_mc);
   
target_mc.play();
   if (
_root.barra_contenido_mc.texto_carga._alpha 0) {
delete _root.barra_contenido_mc
      delete listener
;
   }
};
precargadorContenido_mc.addListener(listenerContenido);
precargadorContenido_mc.loadClip("contenido.swf"contenido_mc); 
visto al paso XDXD espero que te sirva
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #4 (permalink)  
Antiguo 02/12/2008, 08:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Me aparece una barra de carga indeseada

Gracias Lynxcraft poor la respuesta tan rápida, te agradesco mucho de verdad, ahora te comento que probé tu respuesta y sigue apareciendo el problema, ahora voy a probar poniendo todo el código de los botones que está metido en el SWF HEADER y ver si puede ser eso lo que causa el problema.
De todas formas, subí los archivos en version Flash 8 para que lo puedan manosear a gusto, y el que quiera sacar algo util de ahí que lo haga sin asco... no quería subir los archivos porque ya una vez por hacerlo me dijeron que era un peresoso que buscaba que le hagan las cosas por uno... pero es que en realidad me parece más útil y claro para todos subir los archivos para ver los códigos a copiarlos. Además, una vez me dijeron por acá que si ponía mucho código nadie lo leería y no me ayudarían.
LINK DE ARCHIVOS:
http://www.bismanediciones.com.ar/de..._version_8.zip

Voy a probar lo de cambiar de archivo los códigos de la botonera, si funciona aviso por acá para quienes tengan el mismo problema.
Saludos.
  #5 (permalink)  
Antiguo 12/12/2008, 08:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Me aparece una barra de carga indeseada

SOLUCIONADO!!!!!
Probando y rompiendome la cabeza de a ratos largos pude comprender por qué razón me estaba apreciendo una barra de precarga en la esquina superior del SWF cada vez que clickeaba un botón que cargaba un SWF externo mediante MovieClipLoader.
El problema es que todos los SWF externos los estaba cargando con la mismas instancias de clase que había creado de MovieClipLoader y de Listener... entonces tenía esto: Para cargar los SWF siempre utilizaba la instancia "precargadorGalerias_mc" de la clase MovieClipLoader y el Listener era "listenerGalerias", como bien puede verse en los códigos que tipée en mi primer mensaje
Se solucionó cuando cree una instancia de MovieClipLoader y un Listener para cada uno de los SWF que tenía que cargar, es decir, por ejemplo para cargar el SWF "header" cree "var precargadorHeader_mc:MovieClipLoader = new MovieClipLoader", para el SWF "perro" cree "var precargadorPerro_mc:MovieClipLoader = new MovieClipLoader" y así, con cada uno de los SWF. También tuve que crear su correspondiente Listener para cada uno de los SWF (también tiepando todo el proceso de "onLoadStart / onLoadProgress / onLoadComplete "para cada uno, que por suerte para todos uso las mismas acciones pero cambiando solo el nombre del Listener).

RESULTADO FINAL:
CÓDIGO PRECARGA
Código actionscript:
Ver original
  1. //--- CARGADORES ---//
  2. var precargadorHeader_mc:MovieClipLoader = new MovieClipLoader();
  3. var listenerHeader:Object = new Object();
  4. var precargadorPerro_mc:MovieClipLoader = new MovieClipLoader();
  5. var listenerPerro:Object = new Object();
  6. var precargadorGato_mc:MovieClipLoader = new MovieClipLoader();
  7. var precargadorConejo_mc:MovieClipLoader = new MovieClipLoader();
  8.  
  9. //--- como veran, no me hizo falta tipear una variable de listener para los nuevos, me funcionó perfectamente simplemente tipeando el listener abajo ---//
  10.  
  11. //LISTENER HEADER//
  12. listenerHeader.onLoadStart = function (target_mc) {
  13.     _root.attachMovie("barra_header","barra_header_mc", _root.getNextHighestDepth());
  14.     _root.barra_header_mc._y = 500;
  15.     _root.barra_header_mc._x = 100;
  16.     _root.barra_header_mc._yscale = 80;
  17.     _root.barra_header_mc._xscale = _root.barra_header_mc._yscale;
  18. };
  19. listenerHeader.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
  20.     var porcentaje:Number;
  21.     porcentaje = Math.round((loadedBytes*100)/totalBytes);
  22.     _root.barra_header_mc.gotoAndStop(porcentaje);
  23.     target_mc._visible = false;
  24.     target_mc.stop();
  25.     target_mc._alpha = 0;
  26.     _root.barra_header_mc.texto_carga.mensaje.text = porcentaje + " %";
  27. };
  28. listenerHeader.onLoadComplete = function (target_mc) {
  29.     alfaCargador(0, _root.barra_header_mc, _root.barra_header_mc.texto_carga);
  30.     target_mc._visible = true;
  31.     alfaClip (100, target_mc);
  32.     target_mc.play();
  33.     if (_root.barra_header_mc.texto_carga._alpha = 0) {
  34.         delete _root.barra_header_mc;
  35.         delete listener;
  36.     }
  37. };
  38. //LISTENER PERRO//
  39. listenerPerro.onLoadStart = function (target_mc) {
  40.     _root.attachMovie("barra_galerias","barra_galerias_mc", _root.getNextHighestDepth());
  41.     _root.barra_galerias_mc._y = 500;
  42.     _root.barra_galerias_mc._x = 500;
  43.     _root.barra_galerias_mc._yscale = 80;
  44.     _root.barra_galerias_mc._xscale = _root.barra_galerias_mc._yscale;
  45. };
  46. listenerPerro.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
  47.     var porcentaje:Number;
  48.     porcentaje = Math.round((loadedBytes*100)/totalBytes);
  49.     _root.barra_galerias_mc.gotoAndStop(porcentaje);
  50.     target_mc._visible = false;
  51.     target_mc.stop();
  52.     target_mc._alpha = 0;
  53.     _root.barra_galerias_mc.texto_carga.mensaje.text = porcentaje + " %";
  54. };
  55. listenerPerro.onLoadComplete = function (target_mc) {
  56.     alfaCargador(0, _root.barra_galerias_mc, _root.barra_galerias_mc.texto_carga);
  57.     target_mc._visible = true;
  58.     alfaClip (100, target_mc);
  59.     target_mc.play();
  60.     if (_root.barra_galerias_mc.texto_carga._alpha = 0) {
  61.         delete _root.barra_galerias_mc;
  62.         delete listener;
  63.     }
  64. };
  65.  
  66. //LISTENER GATO//
  67. listenerGato.onLoadStart = function (target_mc) {
  68.     _root.attachMovie("barra_galerias","barra_galerias_mc", _root.getNextHighestDepth());
  69. ...
  70.  
  71. y así, no voy a seguir para no hacer un post enorme, pero la idea general se entiende, ¿no?.

CODIGO BOTONES
Código actionscript:
Ver original
  1. //PRESS DE LOS BOTONES
  2. obras_mc.perro_btn.onPress = function(){
  3.     _root.galerias_mc.unloadMovie();
  4.     _root.precargadorPerro_mc.addListener(_root.listenerPerro);
  5.     _root.precargadorPerro_mc.loadClip("galerias/perro.swf", _root.galerias_mc);
  6. };
  7. obras_mc.gato_btn.onPress = function(){
  8.     _root.galerias_mc.unloadMovie();
  9.     _root.precargadorGato_mc.addListener(_root.listenerGato);
  10.     _root.precargadorGato_mc.loadClip("galerias/gato.swf", _root.galerias_mc);
  11. };
  12. obras_mc.conejo_btn.onPress = function(){
  13.     _root.galerias_mc.unloadMovie();
  14.     _root.precargadorConejo_mc.addListener(_root.listenerConejo);
  15.     _root.precargadorConejo_mc.loadClip("galerias/conejo.swf", _root.galerias_mc);
  16. };
Bueno, es como ayuda, pero yo soy simplemente un dibujante que quiere hacer su propia web, así que con esto imagino que los programadores de verdad de este foro podrán hacer algo mejor (sobretodo por eso de los listener que son siempre iguales pero solo cambia el nombre).
Saludos gente y espero que pueda servirle a alguien.

Última edición por Guillon; 12/12/2008 a las 09:30
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 19:36.