Comunidad de diseño web y desarrollo en internet online

Efecto icono de MacOsx

Citar            
MensajeEscrito el 17 Feb 2007 12:17 am
Bueno mas bien es un efecto que los que tiene MacOsx, cuando seleccionamos el icono



, una cosa graciosa que hace es un efecto de rebote y que se contrae haciendolo un poco animado :D



Aplicando el efecto de gravedad , digo pues vamos hacerlo, bueno el resultado me salio bien, pero como todo a la primera te sale casi perfecto, ya que dije vamos a llevarlo un poquito mas lejos.

Lo que hice es duplicar el MovieClip y darle un efecto inverso, y aplicar una Mascara para que creara el rleflejo

Código :


ref1.setMask(masker);



De todas maneras lo vereis en el Fla que os adjunto
Es es el codigo de gravedad, sacado del tutorial de gravedad

Código :


   fuerza = 1;
velocidad = 0;

_root.ref.onRollOver = function()
{
   

            _root.onEnterFrame = function() {
                  velocidad = velocidad+fuerza;
   
      
                     ref._y = ref._y+velocidad;
                  if (ref._y>16) {
                        ref._y = 14;
                 velocidad = velocidad* -1;
   }
   
   
    }
}



El problema se me plantea cuando saldo del boton, para que deje de botar y no consigo que bote el reflejo inversamente , seguramente que esta la solucion ahi delante pero las horas de sueño no me dejan concentrarme.....

Una pregunta, El efecto MacOsx que comente antes se puede hacer por actionscript, simplemente porque lo implementare como moviclip y cargare las imagenes por el xml, sino pos nada.

Lo mas seguro que lo utilice este efecto como Loading :D

El fla

GRacias por leerlo :D

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2007 03:26 am
A ver...

Primero que nada, podés usar un condicional para que el objeto rebote o no dependiendo del rollOver y el rollOut.

Código :

onEnterFrame = function () {
seleccionado = boton.hitTest (_xmouse, _ymouse);
if (seleccionado) {
//
// ACÁ VA EL CÓDIGO DEL REBOTE
//
}
};
Ahora, con respecto al reflejo, hay varias soluciones, la más lógica es calcular el punto más bajo al que llega el objeto (no me refiero a su posición en _y, me refiero a la posición en _y de su extremo inferior) Calculás cuanto se aleja el botón de ese punto y cambiás la posición del reflejo en base a eso. Es decir, si la distancia entre el punto más bajo y la posición actual del botón es de 30 px, la distancia entre ese mismo punto y el reflejo debería ser de 30 px.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 17 Feb 2007 01:17 pm
Lo probare :D

GRacias HernanRivas....

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2007 11:35 pm
Bueno lo he intentado y no me sale muy bien que digamos ya que cuando se lo pongo en la condicion solo coje uno
---------------
Lo primero estos son dos codigos que los muestro porque me ha salido y es curioso
El primero

Código :

ref1.setMask(masker);

fuerza = 1;
velocidad = 0;

onEnterFrame = function () {
seleccionado =_root.ref.hitTest (_xmouse, _ymouse);
if (seleccionado) {
//
   
      velocidad = velocidad+fuerza;
      
      ref._y = ref._y+velocidad;
      if (ref._y>16 && ref1._y>5 ) {
            ref._y = 14;
            velocidad = velocidad* -1;
         }
   ref1._y = ref1._y - velocidad;
   }
};



El segundo

Código :

ref1.setMask(masker);

fuerza = 1;
velocidad = 0;

onEnterFrame = function () {
seleccionado =_root.ref.hitTest (_xmouse, _ymouse);
if (seleccionado) {
//
   
      velocidad = velocidad+fuerza;
      
      ref._y = ref._y+velocidad;
      if (ref._y>16 && ref1._y>5 ) {
            ref._y = 14;
            velocidad = velocidad* -1;
         }
   ref1._y = ref1._y + velocidad;
   }
};



Volviendo al tema

si pongo

Código :




ref1.setMask(masker);

fuerza = 1;
velocidad = 0;

onEnterFrame = function () {
seleccionado =_root.ref.hitTest (_xmouse, _ymouse);
if (seleccionado) {
//
   
      velocidad = velocidad + fuerza;
       
      ref._y = ref._y+velocidad;
      if (ref._y>16) {
            ref._y = 14;
            velocidad = velocidad* -1;
         }
            
      ref1._y = ref1._y+ velocidad; 
      if (ref1._y>25) {
            ref1._y = 15;
            velocidad = velocidad* -1;
         }
 
   }
};


El reflejo llamado ref1 desaparece......

Mas adelante pongo el swf para que se vea

Por Suriv

131 de clabLevel



 

firefox

 

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