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.
Por HernanRivas el 10 de Julio de 2007
Por Ricardo Zacarias el 17 de Noviembre de 2008
function chechPos (){
for (a in hitCiudad){if(hitCiudad[a].hitTest(_xmouse,_ymouse,1)){
cambiarColor(textCiudad[a],100,0xff0000);
}else{
cambiarColor(textCiudad[a],100,0x660000);
};//if
};//for;
};//function chechPos
dicha funcion la llamao desde un evento
textCiudad[0].onMouseMove = function (){
chechPos ();
updateAfterEvent();
};//mouseMove
Por Squadron el 03 de Febrero de 2016
Deberia funcionar si hago un cambio como este:
Original: this.hitTest(_root._xmouse, _root._ymouse, true)
Modificado: this.hitTest(this._xmouse, this._ymouse, true)
Ya se que this no seria correcto porque esta haciendo referencia al boton y debe hacerlo al puntero que es un objeto que esta fuera del boton, entonces, como apuntaria a ese objeto usando una ruta relativa desde el boton?