Comunidad de diseño web y desarrollo en internet online

problema con duplicateMovieClip

Citar            
MensajeEscrito el 15 Feb 2009 08:16 pm
Hola Foros,
quiero que unas lineas se vayan acortando progresivamente una despues de otra.
El codigo que pongo es

Código :

for(i=1; i<270; i++){
   duplicateMovieClip(mc_0, "mc_"+i, i++);
      mc_0._x+=4;
}
function bajar(){
   this["mc_"+i]._height -=10;
   if(this["mc_"+i]._height>20){
      this["mc_"+(i+1)]._height +=10;
   }
}
onEnterFrame =function(){
   bajar();
}

Gracias foros

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2009 09:12 pm
Si, y... osea que pasa, ¿con ese codigo que se ve?, ¿cual es el problema? debes de ser mas explicativo, de todas formas prueba con esto:

Código ActionScript :

for(i=1; i<270; i++){
   duplicateMovieClip(mc_0, "mc_"+i, i++);
   this["mc_"+i]._x = i * 4;
}
var j:Number = -1;
onEnterFrame = function(){
   j = (j > 270)? 0 : j + 1;
   this["mc_"+j]._height -= 10;
   if( this["mc_"+j]._height <= 0 && j == 270 ) delete this.onEnterFrame;
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 15 Feb 2009 09:50 pm
Tienes razón por no extenderme no lo he explicado bien.
mc_0 es un MC que tengo en el escenario. Es una linea vertical de 390px. Mi intencion es que al cargase la pagina esta linea se duplique 270 veces a una distancia una de otra de 4px. esto de momento tal como lo he planteado yo funciona. En el tuyo la expresion this["mc_"+i]._x = i * 4; no hace nada ¿_ ?
El segundo paso viene a ser algo como lo que tu has planteado pero que en vez de acortarse cada linea de golpe lo haga de una manera progresiva. Osea que la primera se vaya acortando poco a poco y cuando tenga una altura de 20px empiece a acortarse la segunda y asi una detras de la otra.
Gracias y si puedes seguir echandome una mano mucho mejor

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2009 10:02 pm
:s no hace nada esa linea :P juraria que si bueno nos basamos en tu script de nuevo:

Código ActionScript :

for(i=1; i<270; i++){
   duplicateMovieClip(mc_0, "mc_"+i, i++);
      mc_0._x+=4;
}
var j:Number = 0;
function bajar(){
   this["mc_"+j]._height -=10;
   if(this["mc_"+j]._height <= 20)
   {
      j++;
   }
}
onEnterFrame =function(){
   bajar();
   if( j > 270 ) delete this.onEnterFrame;
}


Que tal?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 15 Feb 2009 10:42 pm
perfecto!!

por cierto, ¿sabes porque el mc_0 lo coloca al final de todo? y ¿porque solo duplica el mc_1 y los impares y si empiezo por i=0 solo a los pares? si haces una prueba con algo evidente como un alpha o un rotation podras verlo.

Muchisimas gracias por la ayuda era mas facil de lo que creia

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Feb 2009 02:01 am
lo coloca al final de todo por esta linea:

mc_0._x+=4;

y lo del duplicado se arregal con esto:

duplicateMovieClip(mc_0, "mc_"+i, i);

tenias un "i++" al final.

suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Feb 2009 06:45 am
gracias genio!

Por loponti

51 de clabLevel



Genero:Masculino  

firefox

 

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