Autor Tópico: [Duvida] rodar butão  (Lida 1637 vezes)

Offline TripleHCP

  • Aprendiz
  • **
  • Mensagens: 82
    • Ver Perfil
[Duvida] rodar butão
« em: 29 de Setembro de 2006, 21:24:01 »
Boas,

Epah eu n queria perguntar, mas já estou a montes de tempo ás voltas com isto e n chego lá :? É assim eu quero fazer rodar um butão como se fosse butão de volume daqueles de rodar. Fiz um .swf de teste com o butão que contem o seguinte códico dentro:

Código: [Seleccione]
on (press) {
i = _root.buton._rotation;
oMouse = {ax:_xmouse, xy:_ymouse};
Mouse.addListener(oMouse);
oMouse.onMouseMove = function() {
i++;
this.nx = _xmouse;
this.ny = _ymouse;
var dx = Math.abs(this.nx-this.ax);
var dy = Math.abs(this.ny-this.ay);
this.ax = this.nx;
this.ay = this.ny;
var rodar = (dx+dy)*i;
_root.buton._rotation = rodar;
};
oMouse.onMouseUp = function() {
oMouse.onMouseMove = function() {
};
};
}
O butão dá rotações esquezitas e n anda para trás.

vejam:
http://217.129.41.102/a.swf

Cumps[/code]

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
[Duvida] rodar butão
« Responder #1 em: 2 de Outubro de 2006, 18:47:57 »
// criamos um movie clip vazio com um instance name "ponto"
// criamos um movie clip ou um botão com um instance name "bt"
caminho = this;
function calculo(x1:Number, y1:Number, x2:Number, y2:Number):Number {
   return ((Math.atan2(y2-y1, x2-x1)*(180/Math.PI))-270);
}
function rotate() {
   ponto._x = caminho._xmouse;
   ponto._y = caminho._ymouse;
   bt._rotation = calculo(bt._x, bt._y, ponto._x, ponto._y);
}
function activa() {
   caminho.onMouseMove = rotate;
}
function desActiva() {
   delete caminho.onMouseMove;
}
bt.onPress = activa;
bt.onRelease = desActiva;
bt.onReleaseOutside = desActiva;


seguramente que pode haver um algoritmo mais bonito mas este funciona

 




Roleta das Anedotas - Abre noutra janela