Comunidad de diseño web y desarrollo en internet online

Preloader para cada imagen en galería.

Citar            
MensajeEscrito el 16 Abr 2009 08:46 am
Saludos, estoy creando una galería que crea previas dinámicamente, quiero que antes de que cargue la foto introducir un preloader en cada una de ellas, este preloader será una barrita que se encuentra en la biblioteca, lo realizo de la siguiente manera:

Código :

function crearPrevias(num) {
   var marcoP:MovieClip = lienzo_previas.createEmptyMovieClip("marcoP_" + num,       lienzo_previas.getNextHighestDepth());
   var fotoP:MovieClip = lienzo_previas.createEmptyMovieClip("fotoP_" + num, lienzo_previas.getNextHighestDepth());
   var holder:MovieClip = fotoP.createEmptyMovieClip("holder", 1);
   var mclP:MovieClipLoader = new MovieClipLoader();
   var listenerP:Object = new Object();
   
   fotoP.num = num
   mclP.addListener(listenerP);
   mclP.loadClip(rutaPrevias + num + ".jpg", holder);
   
   fotoP.onPress = function(){
      verFotoGrande(this.num);
   }
   
   fotoP.onRollOver = RollOver;
   fotoP.onRollOut = RollOut;
   
   listenerP.onLoadStart = function(target_mc:MovieClip) {
      //target_mc._alpha = 0;
   };
   
   listenerP.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
      attachMovie("barra_mc", "barra_mc", this.getNextHighestDepth());
      var pct:Number = Math.round((bytesLoaded*100)/bytesTotal);
      pct_txt.text = pct+" %";
      barra_mc._xscale = pct;
   };
   
   listenerP.onLoadInit = function(target_mc:MovieClip) {
      target_mc._x = -150 + 150 * posX
      target_mc._y = posY;
      posX++;
      
      marcoP._x = target_mc._x-5;
      marcoP._y = target_mc._y-5;

      with (marcoP) {
         beginFill(0x000000);
         lineStyle(1, 0x6a6a6a, 100);
         lineTo(target_mc._width+10, 0);
         lineTo(target_mc._width+10, target_mc._height+10);
         lineTo(0, target_mc._height+10);
         lineTo(0, 0);
         endFill();
      }
      var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 75, 1, true);
   };
}


Lo que estoy intentando es que en el evento del mcloader onLoadProgress, llamar a un movieclip que tengo en biblioteca, que es una barrita, pero no consigo que aparezca en pantalla de ninguna de las maneras, quizá esté llamando mal a esta barrita de la biblioteca, pero he estado mirando el método attachMovie de la página oficial de adobe pero hay algo que estoy haciendo mal, espero que puedan ayudarme, gracias de antemano.

Por RM13

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 09:56 am
Yo, lo que hago en estos casos, es llamar la barra_mc de la biblioteca ANTES del onLoadProgress de la siguiente forma y metiendola en un mc contenedor, así:

Código ActionScript :

contenedor_mc.attachMovie("barra", "barra_mc", 1);


Luego DENTRO del onLoadProgress, hago lo siguiente:

Código ActionScript :

        //Declaro la variable de calculo de porcentaje
   var porcentaje:Number;
   //Calculoel porcentaje con las variables que le llegan por parametro a la función
   porcentaje = Math.round((bytesLoaded*100)/bytesTotal);
   //Voy al frame del porcentaje en la barra de carga
   contenedor_mc.barra_mc.gotoAndStop(porcentaje);


Y ya por último, DENTRO del onLoadInit, elimino la barra puesto q la imagen ya está cargada:

Código ActionScript :

contenedor_mc.barra_mc.removeMovieClip();


Espero q te sirva, un saludo!

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 10:24 am
Hola Hapki, muchas gracias por tu colaboración pero siento decirte que no me ha funcionado, he probado a realizar algo más simple, cree un archivo nuevo, copie la barra de mi proyecto a este archivo nuevo e hice lo siguiente:

Código :

var contenedor_mc:MovieClip = this.createEmptyMovieClip("contenedor", this.getNextHighestDepth());
contenedor_mc.attachMovie("barra", "barra_mc", 1, {_x:100, _y:100});


Así no consigo que me aparezca la barra.

De todas maneras he mirado otra forma de hacerlo, arrastrar la barra a escena, hacerla invisible al iniciar la aplicación y duplicarmovieclips en cada iteración, de esta forma consigo hacerlo, pero la verdad me gustaría realizarlo de la otra manera, seguiré mirando en foros a ver que puedo estar haciendo mal, muchas gracias de nuevo por tu ayuda :cool: .

Por RM13

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 10:40 am
Seguro que no te aparece con el code que has puesto. Pq acabo de hacer un documento nuevo, he echo una precarga con nombre vinculacion, "barra", he pegado el code que has puesto , sin hacer ninguna modificación, y a mí, SI que me aparece, me parece muy raro q no te aparezca pq he echo lo mismo q tú, y sí aparece. Échale otro vistazo a ver...

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 10:55 am
Pues si que es raro, a mi no me va. He hecho lo siguiente:

- Creo nuevo documento.
- Dibujo una un rectangulo a modo de barra.
- Lo convierto en movieclip y le asigno el nombre de "barra".
- Lo borro de la escena.
- Copio y pego el código tal cual lo he puesto yo, pruebo la pelicula y me aparece en blanco la escena.

Utilizo Flash CS3, AS2.

A ver si poniendo paso a paso vemos que es lo que hago mal , un saludo y gracias de nuevo :D

Por RM13

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 12:18 pm
Cuándo te refieres a "le asigno el nombre de barra" , te refieres al nombre de vinculacion verdad? Pq me da a mi, q en lo único q se puede estar fallando es en éso...

(yo tb lo hago con flash cs3 y as2)

Espero tu respuesta...

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 01:16 pm
Pues me refiero al nombre que le asigno al convertirlo en movieclip, es decir, el nombre que tendrá en la biblioteca.

He vuelto a probar de todas las maneras posibles con ese mismo código y sigue sin funcionar, seguiré investigando a ver si consigo saber por que no funciona, gracias de nuevo por tu interés, eres muy amable.

Por RM13

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 02:21 pm
Mira, aqui te paso el .fla con tu code.

Base.fla

Pero sigue sin quedarme claro ¿Has puesto en "Vinculacion" del mc barra, el correspondiente nombre "barra"?

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 02:45 pm
Vale ya está, jeje, es que llevo muy poco con Flash y ActionScript, pensé que el primer parámetro de attachMovie correspondía con el nombre que le asignas al crear el movieclip, vamos el que te aparece en la biblioteca, pero cuando me dijiste ahora lo de "Vinculación", me sonaba de algo y viendo tu ejemplo, vi que hay que enviar el objeto de la biblioteca a AS, bien perfecto, pues 10000 millones de gracias, da gusto la gente como tu, espero poder ayudarte yo algun día, nos vemos.

Por RM13

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 03:10 pm
A mandar ;)

Por Hapki

Claber

268 de clabLevel



 

firefox

 

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