Comunidad de diseño web y desarrollo en internet online

Duplicar botones por AS

Citar            
MensajeEscrito el 26 Dic 2004 12:35 am
Buenas... Estoy haciendo un ejercicio para cargar swf q contienen fotos. La pelicula principal tiene 5 botones de momento que cargan los swf, y he intentado duplicar un boton a 5 por AS. AL final lo he conseguido pero solo me carga el swf el QUINTO boton. El codigo que tengo es este:

Código :

contador = 0;
do {
   contador = contador+1;
   anterior = contador-1;
   duplicateMovieClip("b", "b" add contador, contador);
   this["b" add contador]._x = this["b"+anterior]._x+this["b"+anterior]._width+40;
} while (contador<5);
this["b"+contador].onRelease = function() {
   ruta = "foto"+contador+".swf";
   carga.loadMovie(ruta);
};


Como consigo asignar a todos los botones el onRelease??

El ejercicio esta aqui http://epode.webcindario.com/carga_fotos.html

Gracias! :lol:

Por osulivan

52 de clabLevel



 

Diseño web madrid

msie
Citar            
MensajeEscrito el 26 Dic 2004 12:49 am
kizas si lo metieras dentro del do ... while ... jajjaja

aun asi veo algunos "errorcillos" [no son errores en si] en tu script, por ejemplo en una parte usas

"b" add contador y en otras "b"+contador ....

contador = contador+1; es equivalente a
contador +=1; o
contador++; o ++contador; [salvando las pekeñas diferencias entre esta dos ultimas

al igual que el uso de do ... whiles y whiles es para cuando no se sabe el final de una accion por ejemplo "mientras no se pulse tal tecla..." , o "mientras no sea tal numero...", en cambio para ciclos y repeticiones que tienen un numero limitado de casos [como por ejemplo este "desde 1 hasta 5 ..." o "desde la primera letra hasta la ultima de la frase..." se suele utilizar el for, esto son cuestiones mas bien de "estetica" si lo quieres llamar asi pero es mas sencillo [es que por ejemplo en el while tienes que añadir una unidad [contador = contador+1], mientras que en el for eso se haria por "automaticamente"

De la misma forma que se convierte un while en un for y un for en un while, susu usos se pueden "intercambiar" pues parecidos son, pero mejor [por lo menos desde mi punto de vista] usar el for cuando se sabe que es para un numero limitado de casos....

saludetes

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 26 Dic 2004 01:02 am
hmmm, jajaj se me paso meterlo entre medias del do y while, vaya tela !! :D , ahora me van todos lso botones, pero cargan todos la QUINTA FOTO :crap: .... voy a probar hacerlo con el FOR a ver si me sale... gracias chaval!

Por osulivan

52 de clabLevel



 

Diseño web madrid

msie
Citar            
MensajeEscrito el 26 Dic 2004 01:32 am
Hola, a ver he conseguido hacer algo por el FOR, me ha quedado asi:

Código :

function cargar() {
   for (i=1; i<=5; i++) {
      botones = eval("b"+i);
      unidad = i;
      botones.onRelease = function() {
         cargar();
         ruta = "foto"+unidad+".swf";
         carga.loadMovie(ruta);
      };
   }
}
function numBotones(numBot) {
   for (var i = 2; i<=numBot; i++) {
      b1.duplicateMovieClip("b"+i, 200+i);
      botones = eval("b"+i);
      botones._x = b1._x+((b1._width+42)*(i-1));
   }
   cargar(numBot);
}
numBotones(5);


Pero me carga la quinta foto en todos los botones !!! :cry:

Por qué !!

Por osulivan

52 de clabLevel



 

Diseño web madrid

msie
Citar            
MensajeEscrito el 26 Dic 2004 03:41 am
Bueno, lo consegui :lol: me falto poner en la linea ' unidad = i ' botones delante de unidad... ( botones.unidad=i ) . Pero hay cosas que no entiendo por que son asi, por ejemplo en la funcion:

Código :

function numBotones(numBot) {
   for (var i = 2; i<=numBot; i++) {
      b1.duplicateMovieClip("b"+i, 200+i);
      botones = eval("b"+i);
      botones._x = b1._x+((b1._width+41)*(i-1));
   }
   cargar(numBot);
}


El ejercicio final esta aqui: http://epode.webcindario.com/carga_fotos.html

Pero no entiendo que es el 200+i y abajo en botones._x tampoco entiendo por que al final se multiplica por (i-1).
Bueno, a ver si alguien me ayuda ...

Un saludo ! :o

Por osulivan

52 de clabLevel



 

Diseño web madrid

msie
Citar            
MensajeEscrito el 26 Dic 2004 08:52 am
200+i es la profundidad.... esto.... bueno, normalmente se suelen usar este tipod e profundidades de XXX+contador... porque¿? bueno, si tienes dos MCs/botones/o lo que sea en la misma profundida pues uno borrara al otra, [no puede haber dos cosas en la misma profundidad]

Ahora bien, si por aki tenemos una funcion que coger y me los duplica en numeros cerkanos al 200 [200+i] , despues hacemos otro duplicate de otra cosa y ... donde lo ponemos? pues para asegurarnos lo podriamos poner en el 300+i / 250+i / 100+i / o simplemente en la i,

es para no andar con calculos de decir, bueno, son 5 botones, pues a partir del 205 esta libre asi que....empezamos en el 206 ....

lo del (i-1) es por la posicion de la pantalla, si te fijas el for empieza en el numero 2 [supongo que ya hay un mc en la pantalla no?] pues para hacer el ajuste, calculando la primera posicion [posicion 1 y no la dos] pero vamos, eso no "influye" en el script de forma considerable, es como poner que la posicion x sea igual a tal o cual numero

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 26 Dic 2004 10:19 am
Hmmm, ahora entiendo.... joder muchas gracias ICEM4N, estoy aprendiendo un monton gracias a este foro... :love:

Gracias !!

Por osulivan

52 de clabLevel



 

Diseño web madrid

msie

 

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