| Efecto -Botón Sigue al Mouse |
|
|
|
| Escrito por Fernando |
| Domingo, 26 de Abril de 2009 15:24 |
|
La siguiente función tienen como objetivo desplazar un objeto según la posición del mouse, si el mouse se desplaza con mas rapidez que su fuerza de atracción este vuelve a su posición original, para ello tenemos que tener encuentra que esta función es dependiente de las clases Tween , flash.geom.Point y como secundaria la clase easing Esta función es muy sencilla de aplicar, pero antes creamos tres botones con el nombre de instance boton_mac ,boton_win,boton_lin, Código :AS2 import mx.transitions.easing.*; import flash.geom.Point; import mx.transitions.Tween; function SigeBotonT1(Boton:Object, Punto:Point, Limite:Number, Fuerza:Number, Func:Function, Activa:Boolean) { if (!Activa) { this.createEmptyMovieClip(Boton._name+'_T1', this.getNextHighestDepth()); this[Boton._name+'_T1'].IniX = Boton._x; this[Boton._name+'_T1'].IniY = Boton._y; } var BC:MovieClip=this[Boton._name+'_T1'] var distancia:Number; BC.onEnterFrame = function() { distancia = Math.sqrt(Math.pow(Boton._x-Punto.x, 2)+Math.pow(Boton._y-Punto.y, 2)); if (distancia<Limite) { Activa = true; Boton._x += (Punto.x-Boton._x)/Fuerza; Boton._y += (Punto.y-Boton._y)/Fuerza; } else { if (Activa) { delete this.onEnterFrame; var tx:Tween = new Tween(Boton, "_x", Func, Boton._x, BC.IniX, 1, true); var ty:Tween = new Tween(Boton, "_y", Func, Boton._y, BC.IniY, 1, true); ty.onMotionFinished = function() { SigeBotonT1(Boton,Punto,Limite,Fuerza,Func,true); }; } } }; } Analizado en 0.019 segundos ha 53.77 KB/s, GeSHi 1.0.8.2-- CFX.GHCode Programado Por Crea-Flash.com Hecho esto al código dado anteriormente le añadimos lo siguiente
Código :AS2 var p:Point=new Point() this.onEnterFrame=function (){ p.x=_xmouse p.y=_ymouse } SigeBotonT1(boton_mac,p,100,5,Elastic.easeOut,false); SigeBotonT1(boton_win,p,100,5,Elastic.easeOut,false); SigeBotonT1(boton_lin,p,100,5,Elastic.easeOut,false); Analizado en 0.014 segundos ha 18.29 KB/s, GeSHi 1.0.8.2-- CFX.GHCode Programado Por Crea-Flash.com El resultado es el lo que se muestra arriba Explicare los parámetros de la función Boton:Object: indica cual es el objeto que deseamos vincular al parametro Punto:Point quien posee las coordenadas X y Y,el objeto se moverá hasta este punto si entra en su área Limite Punto:Point:Este parametro tiene las coordenadas tanto de X y de Y que nos serviran de guía para desplazar el objeto a dicho punto Limite:Number: Es el limite es la distancia de aproximación del Punto , Para que se hagan una idea funciona como radar si el Punto entra en esta área el objeto lo detecta se desplaza hasta el, Fuerza:Number: Es la fuerza con la que es atraído el objeto hasta el Punto si mayor es el valor de este parametro mas lento es el desplazamiento del objeto, Func:Function: Utiliza las funciones de tipo easing, si no conoseis este tipo de clases preguntar en el foro Activa:Boolean: Esta parametro sirve únicamente a la propia función, la cual lo para generar un bucle es recomendable que este siempre en false, La razón del porque utiliza el Point y no las coordenadas directas del mouse es simplemente para que se aplicable a otro tipo de animaciones muy conveniente en juegos
Descargar Archivo de Ejemplo |
| Última actualización el Jueves, 28 de Mayo de 2009 02:16 |


