bueno este es el efecto de un boton que creece conforme el mouse se acerca a el
bueno primero crearemos un dibujo , imagen , lo que ustedes quieran,
cuando hayan terminado despues lo selecionan todo y presionan f8, lo convierten en clip de pelicula, con su punto de registro en la parte central, si por default lo tienen en otro punto solo den doble clik sobre el clip para editarlo y de acuerdo a su ancho ,acomodenlo a la mitad por ejemplo
si es de 80 x 80 entonces solo pongano en x = -40 y= -40
ahora salgan de la edicion , seleccionen el clip
y pongan este codigo
Código :
onClipEvent(load){
Ancho=this._width;
Aumento=200;
perimetro=this._width+20;
}
onClipEvent (enterFrame){
x = this._xmouse;
y = this._ymouse;
radio = Math.sqrt(x*x+y*y);
if (radio < perimetro){
this._yscale += ((Aumento-radio)-this._yscale)/6;
this._xscale = this._yscale;
}
else {
this._yscale += (100-this._yscale)/6;
this._xscale = this._yscale;
}
}
y listo el efecto esta terminado, ahora procedere a explicarles como funciona
Código :
onClipEvent(load){
Ancho=this._width;
Aumento=200;
perimetro=this._width+20;
}
esta parte se efectua cuando se carga el clip por lo tanto solo lo hara una vez
dentro de el estan las acciones a ejecutarse, que en este caso es declarar ancho y aumento, en ancho , obtiene el ancho de el clip para determinar el area de egistro de actividad del mouse
despues en aumento asigna 200, este es el porcentaje que queremos que creesca nuestro clip en este caso crecera un 200% se obtiene el ancho y se le añade 20 pixeles mas para obtener el perimetro a partir del cual detectaremos la cercania del mouse
Código :
onClipEvent (enterFrame){
esto hara que cada vez que revise este objeto se ejecute el codigo siguiente
Código :
x = this._xmouse; y = this._ymouse;
en esta parte se almacena en x y en y la posicion, tanto columna como fila de el mouse dentro del mc para las ecuaciones que necesitamos hacer
Código :
radio = Math.sqrt(x*x+y*y);
en esta se obtiene a que distancia esta obteniendo el radio, e
esto verifica que el radio sea menor a el area de impacto que hemos definido, que es el ancho original de lapelicula
Código :
this._yscale += ((Aumento-radio)-this._yscale)/3; this._xscale = this._yscale;
en esta parte lo que hace es que quita del aumento el radio, por lo tanto entre menos radio, osea mas ccerca, mas crece, se le resta la escaa actual
y se le divide entre 36 para un efecto fluido , esto se puede cambiar, mas pequeño el numero mas rapido y mas seco, mas grande , mas fluido pero mas lento, yo recomiendo 6
despues asigna la misma escala a xscale por qu ees cuadrado
Código :
else {
this._yscale += (100-this._yscale)/6;
this._xscale = this._yscale;
}
esta parte se ejecuta si el mouse esta fuera del area de impacto de el boton
entonces hace una disminucion hasta el 100 % , lo que es el tamaño original
y listo eso es todo , nada complicado ![]()