Comunidad de diseño web y desarrollo en internet online

Simular eventos de rollOver y rollOut con hitTest()

En este tip voy a explicar como usar hitTest en lugar del clasico rollOver y rollOut, ya q con htiTest() obtenemos un código de lectura mas rápida.

Usualmente si quisiéramos hacer un típico botón con fade haríamos lo siguiente:

Código :

btn.onEnterFrame = function (){
   this._alpha += (this.transparencia - this._alpha) /6;
}
btn.onRollOver = function (){
   this.transparencia = 75;
}
btn.onRollOut = onReleaseOutside = function (){
   this.transparencia = 100;
}

En este caso no habría mucho problema. Pero, si la animación es mas compleja habría problemas si pasamos el cursor muy rápido, y más si se usa gotoAndPlay()

Ahora con hitTest haríamos lo siguiente:

Código :

btn.onEnterFrame = function (){
    this._alpha += (this.transparencia - this._alpha) /6;

    //si el cursor esta sobre el boton la transparencia es de 75
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
      this.transparencia = 75;
    //si no vuelve a 100
   } else{
      this.transparencia = 100;
   }
}

Si quisiéramos darle acciones al clickear usamos onMouseDown

Código :

btn.onMouseDown = function (){
   if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
      trace("hola mundo");
        } 
}

De esta forma tampoco veríamos la clásica "manito" de los botones, pero no tenemos mas que habilitarla cuando el cursor esta sobre el botón

Código :

useHandCursor = true;

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate