Comunidad de diseño web y desarrollo en internet online

Suavidad en movimiento

Citar            
MensajeEscrito el 21 May 2004 07:19 pm
Hola

..se me ocurrió hacer un menú easing radial, pero hacieno algunas pruebas vi que el code no funcionaba como me lo esperaba...pues tengo N cuadros en círculo y si los pongo a girar no lo hacen al mismo tiempo, sino uno por uno...entiendo que para que la animación tenga la sensación de suavidad, todos se deben mover al mismo tiempo, y es hay donde no allo cómo ? ?



..éste es el code...sólo es copiarlo y pegarlo en un frame

Código :

var base_nivel = 10;

var mover_angulo = 0;

var ang = 0;



this.onLoad = function(){

   px = 200;

   py = 200;

   radio = 100;

   angulo = 0;

   partes = 15;

   punto = 2 * Math.PI / partes;

   nivel = base_nivel;

}



this.onEnterFrame = function(){

   if(angulo <= 2 * Math.PI){

      if(nivel < base_nivel + partes){

         createEmptyMovieClip("cajita_" + nivel, nivel);

         with(this["cajita_" + nivel]){

            beginFill(nivel * 10, 100);

            lineStyle( 1, "0x000000");

            moveTo(0, 0); 

            lineTo(5, 0);

            lineTo(5, 5);

            lineTo(0, 5);

            endFill();

         }

         this["cajita_" + nivel]._x = px + radio * Math.cos(angulo);

         this["cajita_" + nivel]._y = py + radio * Math.sin(angulo);

         this["cajita_" + nivel].mi_angulo = angulo;

         angulo += punto;

         nivel ++;

      }

   }

   if(this.mover_angulo){

      if (nivel == (base_nivel + partes + 1)){

         nivel = base_nivel;

      }else{

         this["cajita_" + nivel]._x = px + radio * Math.cos(this["cajita_" + nivel].mi_angulo);

         this["cajita_" + nivel]._y = py + radio * Math.sin(this["cajita_" + nivel].mi_angulo);

         this["cajita_" + nivel].mi_angulo += .1;

         nivel ++;

      }

   }

}



this.onMouseDown = function(){

   mover_angulo = 1;

}




Para comenzar a mover, hay que dar click



Gracias

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 22 May 2004 03:11 am
Pues no veo claro cual es tu meta; ya me di cuenta que creas un circulo de colores ... pero, que es lo que quieres que pase exactamente?

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 22 May 2004 06:08 am
la meta es lograr que todos giren como si fueran una sóla figura...como un carrusel ! ! ....o como una rueda gigante.....no que primero se mueva uno, luego el otro y así independientes...

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 22 May 2004 06:30 am
no lo he implementado, pero se me ocurre meter todas esas figuras dentro de otro MC...y en tonces movería al MC en vez de a cada una por separa....creo que sí es así.

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 22 May 2004 02:43 pm
Pues si, eso iba a decir, Uan función que creara un MovieClip vacio y en el otros ms que dibujaran cada cuadro en torno a la figura de circulo; luego en un nivel mas alto mueves el movie clip principal con _rotation y si quieres, añadiendole easing; :D

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 23 May 2004 02:46 am
Esto queres?

Código :


var base_nivel = 10;

var mover_angulo = 0;

var ang = 0;

px = 200;

py = 200;

radio = 100;

angulo = 0;

partes = 15;

punto = 2*Math.PI/partes;

nivel = base_nivel;

for (var i = 0; i<20; i++) {

   if (angulo<=2*Math.PI) {

      if (nivel<base_nivel+partes) {

         createEmptyMovieClip("cajita_"+nivel, nivel);

         with (this["cajita_"+nivel]) {

            beginFill(nivel*10, 100);

            lineStyle(1, "0x000000");

            moveTo(0, 0);

            lineTo(5, 0);

            lineTo(5, 5);

            lineTo(0, 5);

            endFill();

         }

         this["cajita_"+nivel]._x = px+radio*Math.cos(angulo);

         this["cajita_"+nivel]._y = py+radio*Math.sin(angulo);

         this["cajita_"+nivel].mi_angulo = angulo;

         angulo += punto;

         nivel++;

      }

   }

   if (this.mover_angulo) {

      if (nivel == (base_nivel+partes+1)) {

         nivel = base_nivel;

      } else {

         this["cajita_"+nivel]._x = px+radio*Math.cos(this["cajita_"+nivel].mi_angulo);

         this["cajita_"+nivel]._y = py+radio*Math.sin(this["cajita_"+nivel].mi_angulo);

         this["cajita_"+nivel].mi_angulo += .1;

         nivel++;

      }

   }

}

doRot = function (intensidad) {

   for (var i = 0; i<25; i++) {

      eval("cajita_"+i).mi_angulo += intensidad;

      eval("cajita_"+i)._x = px+radio*Math.cos(eval("cajita_"+i).mi_angulo);

      eval("cajita_"+i)._y = py+radio*Math.sin(eval("cajita_"+i).mi_angulo);

   }

};

onMouseDown = function () {

   setInterval(doRot, 0, .001);

};








Salu2, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown
Citar            
MensajeEscrito el 24 May 2004 12:53 am
vuelvo luego de 2 días de ausencia y encuentro un code PERFECTO para lo que buscaba ! ! ...gracias amigo !

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 24 May 2004 04:56 am
De nada che





Salu2, Hernan . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

unknown

 

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