Comunidad de diseño web y desarrollo en internet online

mejorar boton que se mueve c/mouse

Citar            
MensajeEscrito el 01 Feb 2010 08:38 pm
buenas.. mi duda es la siguiente:

tengo un boton que se mueve hacia el mouse dentro de un marco cuando el mouse entra en este ultimo... cuando el mouse sale el boton vuelve al centro del marco

quisiera saber si hay una mejor forma de hacer la zona interactiva(el marco) en la que el boton va hacia el mouse... probé haciendo un rectangulo y usando onRollOver=function() con él para mover el boton... pero una vez que el boton se posiciona sobre el mouse ya no hay roll over sobre el rectangulo(marco) y por lo tanto el boton empieza a convulsionar x_X

no sé si se puede con algun listener de mouse... no los domino aún..

y el tema de usar tanto OnEnterFrame que me resulta molesto ya que son 4 en total los botones... debo estar usando demasiados recursos :( no sé si se puede poner algun delete onEnterFrame en alguna parte

al final usé este código en el unico frame sin crear objeto ninguno que haga de marco sino solo coordenadas para el mouse:

Código ActionScript :

//coord iniciales de bola
bolaiy=bola._y;
bolaix=bola._x;
//variables para elasticidad
var velocidad:Number = .1;
var friccion:Number = .91;
var velx:Number = 0,vely:Number = 0;

bola.onEnterFrame=function(){
//ESTO!!! (estas son las coordenadas donde empieza el marco interactivo)
   if(_ymouse<325 && _ymouse>75 && _xmouse<475 && _xmouse>75){
//
      //si el mouse entra al marco
      this._y-=(this._y-_ymouse)/7;
      this._x-=(this._x-_xmouse)/7;
   }else{
      //si el mouse sale del marco
      velx = ((bolaix - bola._x)*velocidad)+(velx*friccion);
      vely = ((bolaiy - bola._y)*velocidad)+(vely*friccion);
      bola._x += velx;
      bola._y += vely;
   }
}
//funciones del boton
bola.onPress=function(){
   msge.text="CLICKED";
}
bola.onRollOut=function(){
   msge.text="";
}


Por Mr. D. Vided

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Feb 2010 08:50 pm
hola, te dejo este tutorial, no se si sera lo que buscas, si no es te puede dar alguna idea

Tutorial

Saludos =)

Por Verys

67 de clabLevel



Genero:Femenino  

Argentina

firefox
Citar            
MensajeEscrito el 01 Feb 2010 09:52 pm
Gracias por el tutorial, el efecto ese está muy bueno (ya lo había visto en www.urbana.com.uy)... pero no es lo que busco...

el problema es la zona interactiva no coordenadas del mouse

muchas gracias igual :)

Por Mr. D. Vided

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Feb 2010 10:04 pm
logré matar el onEnterFrame pero este código me parece realmente chancho a lo más noob XD
si algún pro tiene algún tip para que quede más prolijo o si ve que el código en realidad es genial jajaj por favor hagalo saber ;D


creé un rectangulo llamado "marco" de 200 x 200 que va desde _x -100 a 100 y _y -100 a 100
cuando la velocidad del boton es casi 0 saco el onEnterFrame.

Código ActionScript :

marco.useHandCursor=0;
bubble_iy=bubble_btn._y;
bubble_ix=bubble_btn._x;

var velocidad:Number = .1;
var friccion:Number = .91;
var velx:Number = 0,vely:Number = 0;

marco.onRollOver=function(){
   
   bubble_btn.onEnterFrame=function(){
      if(_ymouse<100 && _ymouse>-100 && _xmouse<100 && _xmouse>-100){
         this._y-=(this._y-_ymouse)/7;
         this._x-=(this._x-_xmouse)/7;
      }else{
         velx = ((bubble_ix - bubble_btn._x)*velocidad)+(velx*friccion);
         vely = ((bubble_iy - bubble_btn._y)*velocidad)+(vely*friccion);
         bubble_btn._x += velx;
         bubble_btn._y += vely;
         if(velx<0.02 && velx!=0 && velx>-0.02
            && vely<0.02 && vely!=0 && vely>-0.02){
            delete this.onEnterFrame;
         }
      }
   }
}

Por Mr. D. Vided

10 de clabLevel



 

firefox

 

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