Te has explicado genial lruiz, gracias.. lo de las profundidades ya lo solucione ayer noche..
Y también solucione el tema de los preloads... por que como estaba anteriormente, realmente no hacia una precarga de cada imagen sino que hacia una precarga de la ultima mc que se generaba.. En fin que ahora tengo otra duda... :S Este es el code del que dispongo ahora mismo. <code> //INICIAMOS VARIABLES var totalFotos:Number = 5; //CREAMOS LOS MC'S NECESARIOS this.createEmptyMovieClip("containerFotoInicio_mc", this.getNextHighestDepth()); this.createEmptyMovieClip("mascaraGaleria_mc", this.getNextHighestDepth()); this.createEmptyMovieClip("containerGaleria_mc", this.getNextHighestDepth()); //POSICIONAMOS LOS MC'S BASE //posicionamiento de la imagen base para la galería containerFotoInicio_mc._x = 0; containerFotoInicio_mc._y = 0; containerFotoInicio_mc.loadMovie("00.jpg"); //posicionamiento de la MC que va ha hacer el efecto de ventana en la galería containerGaleria_mc._x = 400; containerGaleria_mc._y = 0; //CREAMOS TANTOS CONTENEDORES COMO IMAGENES HAYA Y LES CARGAMOS LAS IMAGENES //cogemos la profundidad base para las demas MC que creemos. var prof:Number = containerGaleria_mc.getDepth(); var nombreMC:Array = new Array(); for (i=1; i<totalFotos; i++) { fotos_mc = containerGaleria_mc.createEmptyMovieClip("foto"+i, prof++); //Metemos la referencia al MC de la foto en una posicion del array para despues posicionarlos. nombreMC[i] = fotos_mc; //MC para controlar la carga de las imagenes. preloadFoto_mc = containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, (prof++)); nombreMC[i].loadMovie("0"+i+".jpg"); nombreMC[i]._x = nombreMC[i]._y=0; //pasamos el nombre del mc a una variable del preloader para poder evaluar la precarga. preloadFoto_mc.mc = nombreMC[i]; //comprobamos que se hayan cargado las imagenes para poder posicionarlas en una tira y hacer el slide. preloadFoto_mc.onEnterFrame = function() { //trace(this.mc); var bl:Number = this.mc.getBytesLoaded(); var bt:Number = this.mc.getBytesTotal(); var carga:Number = (bl>4) ? (Math.floor(100*bl/bt)) : 0; var newPosFotoX:Number = 0; var initial:Number = 0; var imagenes_cargadas:Number; if (carga == 100) { delete this.onEnterFrame; this.removeMovieClip(); //posicionamos las imagenes en una tira horizontal. imagenes_cargadas++; trace(totalFotos); //<--uso una variable if (imagenes_cargadas == totalFotos) { //posicionamos las imagenes en una tira horizontal. for (x=1; x<nombreMC.length; x++) { newPosFotoX = (nombreMC[x]._width*initial); nombreMC[x]._x = newPosFotoX; trace(nombreMC[x]._name+": "+newPosFotoX); initial++; } } /*for (x=1; x<nombreMC.length; x++) { newPosFotoX = (nombreMC[x]._width*initial); nombreMC[x]._x = newPosFotoX; trace(nombreMC[x]._name+": "+newPosFotoX); initial++; }*/ } }; } //MASCARA PARA LA GALERÍA mascaraGaleria_mc.beginFill(0xFF0000); mascaraGaleria_mc.moveTo(400, 0); mascaraGaleria_mc.lineTo(798, 0); mascaraGaleria_mc.lineTo(798, 317); mascaraGaleria_mc.lineTo(400, 317); mascaraGaleria_mc.lineTo(400, 0); //containerGaleria_mc.setMask(mascaraGaleria_mc); stop(); </code> Dentro de preloadFotos_mc.onEnterFrame, he introducido una variable llamada "imagenes_cargadas" que se incrementa cada vez que carga==100 (en teoría se incrementa). Pero cuando hago un trace de imágenes_cargadas me devuelve "NaN"... Es raro.. xq se debería de ejecutar el incremento.. dado que lo uso para comprobar que cuando estén todas cargadas, me ejecute un bucle para posicionarlas en su eje X y hacer una tira horizontal. Buenos días a todos! -----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de lruiz Enviado el: jueves, 10 de noviembre de 2005 18:58 Para: asnativos@5dms.com Asunto: RE: [ASNativos] Usar valor guardado en array para llamar a un MC. Buenas Gain creo que ya se lo que pasa... el error esta linea ya que las la primera produndidades del preload se machacan con las ultimas de "fotos_mc" <code> preloadFoto_mc = containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, (prof+i)); </code> prueba con esto <code> prof++ preloadFoto_mc = containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, prof); </code> Asi genera por ejemplo la primera foto en la 1 la pregarga en la 2.. etc... no se si me explico yo he puesto esto y funciona <code> var prof2:Number = 90+prof preloadFoto_mc = containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, prof2); </code> No se si me he explicado bien... si quieres te envio el FLA espero que te sirva...???? ---------- Original Message ---------------------------------- From: "Gain Media Work" <[EMAIL PROTECTED]> Reply-To: asnativos@5dms.com Date: Thu, 10 Nov 2005 17:35:20 +0100 >Hola Fede, > >Ante todo, gracias por tu atención. > >Lo que me comentas, ya lo he hecho, creo que he aislado 2 veces todo el >code.. > >El tema de que inicie las variables del for a 1 ya esta bien.. xq el total >lo tengo a 5 de manera que me crea 4 posiciones en la matriz. > >Después, el problema, creo que está en este trozo: > ><code> >preloadFoto_mc.onEnterFrame = function() { > trace(this._name); > var bl:Number = fotos_mc.getBytesLoaded(); > var bt:Number = fotos_mc.getBytesTotal(); > var carga:Number = (bl>4) ? (Math.floor(100*bl/bt)) : 0; > var newPosFotoX:Number = 0; > var initial:Number = 0; > if (carga == 100) { > delete this.onEnterFrame; > this.removeMovieClip(); > //posicionamos las imagenes en una tira horizontal. > for(x=1;x<nombreMC.length;x++){ > newPosFotoX = (nombreMC[x]._width*initial); > nombreMC[x]._x = newPosFotoX; > trace(nombreMC[x]._name + ": " + >newPosFotoX) > initial++; > } > } > } ></code> > >Ya que si revisais el código completo del FOR.. vereis que se crea un MC >para controlar "en teoria" las precargas de las imágenes.. pero si >inspeccionais el code del "preloadFoto_mc.onEnterFrame" vereis que hace >referencia a fotos_mc en el getBytesLoaded y Total()... entonces.. si en ese >punto hago un trace(fotos_mc._name) me imprime el nombre de la ULTIMA MC >contenedora de imágenes (foto4). > >Si haceis otro trace(this._name) vereis que solamente imprime el name de >preloadFoto3, preloadFoto4. > >Por lo que deduzco que solamente hace el preload de la última MC que >contiene la ultima imagen.. > >Mirad os paso una url con el .fla y un zip con las imágenes q uso... > >FLA: http://www.gainmw.com/asnativo/loadImg.fla >SWF: http://www.gainmw.com/asnativo/loadImg.swf >IMAGENES: http://www.gainmw.com/asnativo/imagenes.rar > >Así os lo podeis mirar mejor. Xq me estoy volviendo loco poco a poco poco a >poco (musiquita de fondo de las palomitas de maiz) > >Jejejejeje > >Saludos!! > > >-----Mensaje original----- >De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre >de Fede Rivas >Enviado el: jueves, 10 de noviembre de 2005 16:54 >Para: asnativos@5dms.com >Asunto: Re: [ASNativos] Usar valor guardado en array para llamar a un MC. > >Buenass . Cuando llegas a un punto en el que te lías y no das con la clave >del problema, lo que suelo hacer es crear directamtente un nuevo archivo >.fla y "aislar" el problema en él, creando un pequeño archivo de pruebas con >lo minimo imprescindible para poder testear intensivamente solo la parte de >coldigo que me trae de cabeza. > >En principio el problema parece ser que la longitud de nombreMC no es la que >esperas, o bien que tu bucle no se ejecuta de forma conveniente , ojo que >estas comenzando con 1 como valor de inicio, y tu condicion de bucle es < y >no <=, por lo que x ahí pueden ir los tiros. Ten en cuenta, que ademas,al >comenzar los bucles en 1, por ejemplo la matriz nombreMC tiene su posicion 0 >vacía.... > >Comprueba bien los contenidos y longitudes de las matrices q manejas. > >Un saludo , > >Fede. > >El 10/11/05 16:21, "Gain Media Work" <[EMAIL PROTECTED]> escribió: > >> Siguiendo con el tema... >> >> Hay una cosa que no entiendo... a ver si alguien me la puede comentar. >> >> En este code >> >> <code> >> for (i=1; i<totalFotos; i++) { >> prof++; >> fotos_mc = containerGaleria_mc.createEmptyMovieClip("foto"+i, prof); >> //Metemos la referencia al MC de la foto en una posicion del array >> para despues posicionarlos. >> nombreMC[i] = fotos_mc; >> //MC para controlar la carga de las imagenes. >> preloadFoto_mc = >> containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, (prof+i)); >> fotos_mc.loadMovie("0"+i+".jpg"); >> fotos_mc._x = fotos_mc._y=0; >> //comprobamos que se hayan cargado las imagenes para poder >> posicionarlas en una tira y hacer el slide. >> preloadFoto_mc.onEnterFrame = function() { >> var bl:Number = fotos_mc.getBytesLoaded(); >> var bt:Number = fotos_mc.getBytesTotal(); >> var carga:Number = (bl>4) ? (Math.floor(100*bl/bt)) : 0; >> var newPosFotoX:Number = 0; >> if (carga == 100) { >> delete this.onEnterFrame; >> this.removeMovieClip(); >> //posicionamos las imagenes en una tira horizontal. >> for(x=1;x<nombreMC.length;x++){ >> trace(nombreMC[x]._name); >> } >> } >> } >> } >> </code> >> >> En la parte del preloadFoto_mc.onEnterFrame... eso se ejecuta para cada >> foto,ok? Por lo que la comprobación de carga == 100 es para cada foto.. >> Entonces.. en ese IF si pusiera un trace("hola"), se debería de escribir 4 >> veces HOLA, pero no sucede así.. >> >> Solamente lo escribe 2 veces, en cambio si le meto ese FOR que veis, con >un >> trace del nombre de la MC que hay en la posición de array, entonces >también >> lo ejecuta 2 veces!!! >> >> Estoy liadisimo, tengo la cabeza que no me da mas de si hoy... grrrr!!!!! >> >> I need Help!! >> >> -----Mensaje original----- >> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En >nombre >> de Gain Media Work >> Enviado el: jueves, 10 de noviembre de 2005 15:57 >> Para: asnativos@5dms.com >> Asunto: RE: [ASNativos] Usar valor guardado en array para llamar a un MC. >> >> Hari.. con lo que me has pasao.. >> >> Si hago >> >> trace(nombreMC[i]); >> >> me devuelve undefined >> >> en cambio si hago: >> >> trace(nombreMC); >> >> me devuelve los valores que va adquiriendo el array nombreMC separados por >> ","... >> >> como leñes accedo a las posiciones de ese array? Si no me deja con el >> incremento de "i" >> >> >> >> ...? >> >> -----Mensaje original----- >> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En >nombre >> de Gain Media Work >> Enviado el: jueves, 10 de noviembre de 2005 15:15 >> Para: asnativos@5dms.com >> Asunto: RE: [ASNativos] Usar valor guardado en array para llamar a un MC. >> >> Me pongo a ello... ;) >> >> Aunque primero tendré que ir haciendo una versión de muestra con este code >> por que tengo al cliente que se sube por las paredes por que quiere ver >algo >> ya. >> >> En cuanto tenga un minuto, os muestro algo... >> >> ^_^ gracias hari.. >> >> >> -----Mensaje original----- >> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En >nombre >> de Hari Seldon >> Enviado el: jueves, 10 de noviembre de 2005 13:54 >> Para: asnativos@5dms.com >> Asunto: RE: [ASNativos] Usar valor guardado en array para llamar a un MC. >> >> Pues en vez de poner fotos_mc, pones: >> nombreMC[i] >> .... >> >> A ver, completo, debería de funcionar así: >> >> <codecompleto> >> >> for (i = 1; i < totalFotos; i++) { >> prof++; >> nombreMC.push(containerGaleria_mc.createEmptyMovieClip("foto" + i, >> getNextHighestDepth() + i)); >> trace(nombreMC[i]); >> //MC para controlar la carga de las imagenes. >> preloadFoto_mc = >> containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, (prof+i)); >> nombreMC[i].loadMovie("0"+i+".jpg"); >> nombreMC[i]._x = nombreMC[i]._y=0; >> //comprobamos que se hayan cargado las imagenes para poder >> posicionarlas en una tira y hacer el slide. >> preloadFoto_mc.onEnterFrame = function() { >> var bl:Number = nombreMC[i].getBytesLoaded(); >> var bt:Number = nombreMC[i].getBytesTotal(); >> var carga:Number = (bl>4) ? (Math.floor(100*bl/bt)) : 0; >> if (carga == 100) { >> delete this.onEnterFrame; >> this.removeMovieClip(); >> //posicionamos las imagenes en una tira horizontal. >> containerGaleria_mc.nombreMC[i]._x = 450; >> } >> } >> } >> </codecompleto> >> >> Es más, yo haría un array de (n x 2) [dónde n = totalFotos], para >> meter el mc dónde cargas la foto, y el mc "controlador"; así después >puedes >> borrar/editar/actualizar con más facilidad _todo_ >> >> Si no sabes cómo hacerlo, te pongo el código.. Pero a ver si lo >> sacas tu y lo posteas ;) >> >> Un saludo. >> >> >>> -----Mensaje original----- >>> De: [EMAIL PROTECTED] >>> [mailto:[EMAIL PROTECTED] En nombre de Gain Media Work >>> Enviado el: jueves, 10 de noviembre de 2005 13:44 >>> Para: asnativos@5dms.com >>> Asunto: RE: [ASNativos] Usar valor guardado en array para >>> llamar a un MC. >>> >>> Hari pero eso no me sirve.. por que tengo que tener el preloader... >>> >>> Abajo del todo he posteado el code entero para que veais >>> donde va eso.. >>> >>> >>> >>> -----Mensaje original----- >>> De: [EMAIL PROTECTED] >>> [mailto:[EMAIL PROTECTED] En nombre >>> de Hari Seldon >>> Enviado el: jueves, 10 de noviembre de 2005 13:04 >>> Para: asnativos@5dms.com >>> Asunto: RE: [ASNativos] Usar valor guardado en array para >>> llamar a un MC. >>> >>> Con más "simplicidad": >>> >>> for(i = 0; i < total; i++) { >>> >>> nombreMC.push(containerGaleria_mc.createEmptyMovieClip("foto" + i, >>> getNextHighestDepth() + i)); >>> } >>> Así no te creas variables temporales que puedan "estorbar". >>> >>> Saludos. >>> >>>> -----Mensaje original----- >>>> De: [EMAIL PROTECTED] >>>> [mailto:[EMAIL PROTECTED] En nombre de Gain Media Work >>>> Enviado el: jueves, 10 de noviembre de 2005 12:54 >>>> Para: asnativos@5dms.com >>>> Asunto: RE: [ASNativos] Usar valor guardado en array para >>>> llamar a un MC. >>>> >>>> Vaya.. habia probado.. >>>> >>>> containerGaleria_mc(nombreMC[numero])._x = XXX; >>>> >>>> pero sin suerte claro... después en la ayuda solo veía >>>> ejemplos de eval() >>>> etc... >>>> >>>> Pues también tienes razón Cay, a mi también me gusta mas de >>>> esa forma... >>>> >>>> Muchas gracias ^_^! >>>> >>>> >>>> >>>> -----Mensaje original----- >>>> De: [EMAIL PROTECTED] >>>> [mailto:[EMAIL PROTECTED] En nombre >>>> de Cay Garrido H. >>>> Enviado el: jueves, 10 de noviembre de 2005 12:50 >>>> Para: asnativos@5dms.com >>>> Asunto: Re: [ASNativos] Usar valor guardado en array para >>>> llamar a un MC. >>>> >>>> En principio seria: >>>> >>>> containerGaleria_mc[nombreMC[numero]]._x = XXX; >>>> >>>> pero me gusta mas meter referencias de los mcs en el array, >>>> osea en tu for: >>>> >>>> nombreMC[i] = fotos_mc; >>>> >>>> y luego: >>>> >>>> nombreMC[numero]._x = XXX; >>>> >>>> >>>> >>>> >>>> Gain Media Work escribió: >>>> >>>>> Hola compadres! >>>>> >>>>> Mirad, tengo un array con nombres de MC's, este array lo he >>>> llenado con un >>>>> FOR y usando esto: >>>>> >>>>> <code> >>>>> for(i=0;i<total;i++) >>>>> fotos_mc = containerGaleria_mc.createEmptyMovieClip("foto"+i, >>>>> getNextHighestDepth()+i); >>>>> nombreMC[i] = fotos_mc._name; >>>>> } >>>>> </code> >>>>> >>>>> El tema está en que decidí meter los nombres en un array para >>>> posteriormente >>>>> poder usar los nombres para posicionarlas en "_x" >>>>> >>>>> Pero no se como hacer para concatenar los valores de esas >>>> arrays y usarlos >>>>> para hacer referencia a las MC's.. ya que he de concatenarlo >>>> de esta forma. >>>>> >>>>> containerGaleria_mc.NOMBREMCENARRAY._x = XXX; >>>>> >>>>> Esto es posible o hay alguna forma mejor de hacer lo que "intento". >>>>> >>>>> <codecompleto> >>>>> for (i=1; i<totalFotos; i++) { >>>>> prof++; >>>>> fotos_mc = >>>> containerGaleria_mc.createEmptyMovieClip("foto"+i, prof); >>>>> nombreMC[i] = fotos_mc._name; >>>>> trace(nombreMC[i]); >>>>> //MC para controlar la carga de las imagenes. >>>>> preloadFoto_mc = >>>>> containerGaleria_mc.createEmptyMovieClip("preloadFoto"+i, >>> (prof+i)); >>>>> fotos_mc.loadMovie("0"+i+".jpg"); >>>>> fotos_mc._x = fotos_mc._y=0; >>>>> //comprobamos que se hayan cargado las imagenes para poder >>>>> posicionarlas en una tira y hacer el slide. >>>>> preloadFoto_mc.onEnterFrame = function() { >>>>> var bl:Number = fotos_mc.getBytesLoaded(); >>>>> var bt:Number = fotos_mc.getBytesTotal(); >>>>> var carga:Number = (bl>4) ? (Math.floor(100*bl/bt)) : 0; >>>>> if (carga == 100) { >>>>> delete this.onEnterFrame; >>>>> this.removeMovieClip(); >>>>> //posicionamos las imagenes en una tira >>>> horizontal. >>>>> containerGaleria_mc.nombreMC[i]._x = 450; >>>>> } >>>>> } >>>>> } >>>>> </codecompleto> >>>>> >>>>> >>>>> Gracias >>>>> >>>>> >>>>> ---------------------------------- >>>>> Lista ASNativos:asnativos@5dms.com >>>>> http://www.5dms.com/listas >>>>> ---------------------------------- >>>>> >>>>> >>>>> >>>> >>>> >>>> ---------------------------------- >>>> Lista ASNativos:asnativos@5dms.com >>>> http://www.5dms.com/listas >>>> ---------------------------------- >>>> >>>> ---------------------------------- >>>> Lista ASNativos:asnativos@5dms.com >>>> http://www.5dms.com/listas >>>> ---------------------------------- >>> >>> ---------------------------------- >>> Lista ASNativos:asnativos@5dms.com >>> http://www.5dms.com/listas >>> ---------------------------------- >>> >>> ---------------------------------- >>> Lista ASNativos:asnativos@5dms.com >>> http://www.5dms.com/listas >>> ---------------------------------- >> >> ---------------------------------- >> Lista ASNativos:asnativos@5dms.com >> http://www.5dms.com/listas >> ---------------------------------- >> >> ---------------------------------- >> Lista ASNativos:asnativos@5dms.com >> http://www.5dms.com/listas >> ---------------------------------- >> >> ---------------------------------- >> Lista ASNativos:asnativos@5dms.com >> http://www.5dms.com/listas >> ---------------------------------- >> >> ---------------------------------- >> Lista ASNativos:asnativos@5dms.com >> http://www.5dms.com/listas >> ---------------------------------- >> > > >---------------------------------- >Lista ASNativos:asnativos@5dms.com >http://www.5dms.com/listas >---------------------------------- > >---------------------------------- >Lista ASNativos:asnativos@5dms.com >http://www.5dms.com/listas >---------------------------------- > ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ---------------------------------- ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ----------------------------------