domingo, 25 de novembro de 2007

Tutorial 22: Gravidade

O programa abaixo simula a ação da gravidade sobre uma pequena bola azul.



Leia mais! * Montagem
Crie um novo símbolo (Ctrl+F8).
No símbolo, desenhe uma bola.
Volte para o documento e instancie a bola no palco.

* Programação
Abra a janela de ActionScript (F9).
Na timeline do documento, clique no frame 1:
gravidade = 1; Edite o símbolo da bola.
Na timeline da bola, clique no frame 1:
vy = 0;

onEnterFrame = function() {
vy+=_root.gravidade;
if (_y+vy<Stage.height)
_y+=vy;
else {
_y = Stage.height;
vy = -vy-_root.gravidade;
}
}

domingo, 18 de novembro de 2007

Tutorial 21: Mancha d'água

Utilize o painel abaixo para desenhar com o mouse. Mas seja rápido! Senão a mancha desaparece.



Leia mais! * Montagem
Crie um novo símbolo com o nome 'mancha' (Ctrl+F8).
No símbolo, desenhe um círculo pequeno.
Na biblioteca, clique com o botão direito sobre a mancha.
Escolha "Linkage" e selecione "Export for ActionScript".

* Programação
Abra a janela de ActionScript (F9).
Na timeline do documento, clique no frame 1:
pintar = false;
ct = 0;
onMouseDown = function() { pintar=true; }
onMouseUp = function() { pintar=false; }
onMouseMove = function() {
if (!pintar) return;
attachMovie("mancha","m"+ct++, this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
}
Edite o símbolo da mancha.
Na timeline da mancha, clique no frame 1:
minimo = 1;
onEnterFrame = function() {
_alpha--;
if (_alpha<minimo) this.removeMovieClip();
}

* Secagem rápida
Altere o valor de "minimo" para 80.

quarta-feira, 14 de novembro de 2007

Tutorial 20: Botão rotativo 2

Esse tutorial é uma reprogramação do botão rotativo. Para fazê-lo girar, desta vez é necessário girar o mouse em torno do botão.



Leia mais! * Montagem
Utilize a mesma montagem do Tutorial 15: botão rotativo.

* Programação
Abra a janela de ActionScript (F9).
Edite o símbolo do botao.
Na timeline do botao, clique no frame 1:
apertou = false;
ax = 0;
ay = 0;
rx = 0;

dot = function(x1,y1,x2,y2) { return x1*x2+y1*y2; }
cross = function(x1,y1,x2,y2) { return x1*y2-x2*y1; }
mod = function(x1,y1) { return Math.sqrt(x1*x1+y1*y1); }
graus = function(rad) { return rad*180/Math.PI; }
angulo = function(x1,y1,x2,y2) {
cx1 = x1-_x; cy1 = y1-_y;
cx2 = x2-_x; cy2 = y2-_y;
valor = graus(Math.acos(dot(cx1,cy1,cx2,cy2)
/(mod(cx1,cy1)*mod(cx2,cy2))));
seno = graus(Math.asin(cross(cx1,cy1,cx2,cy2)
/(mod(cx1,cy1)*mod(cx2,cy2))));
if (seno<0) valor=-valor;
return valor;
}

onMouseDown = function() {
if(!this.hitTest(_root._xmouse,_root._ymouse,false))
return;
apertou = true;
ax = _root._xmouse;
ay = _root._ymouse;
rx = _rotation;
if (rx<0) rx+=360;
}
onMouseUp = function() {
apertou = false;
}
onMouseMove = function() {
if (!apertou) return;
rx += angulo(ax,ay,_root._xmouse,_root._ymouse);
ax = _root._xmouse;
ay = _root._ymouse;
if (rx>359) _rotation=359;
else if (rx<0) _rotation=0;
else _rotation = rx;
}

terça-feira, 6 de novembro de 2007

Tutorial 19: Faixa

Uma forma diferente de esconder um texto utilizando um botão rotativo. Arraste o botão para direita para exibir a faixa.



Leia mais! * Montagem
Crie 3 camadas (layers).
Crie um símbolo de botão rotativo (ler tutorial).
Na camada superior, instancie (arraste da biblioteca) o botão.
Em propriedades, altere o nome do botão para 'botao'.
Na camada inferior, desenhe sua faixa partindo do botão.
Transforme a faixa em símbolo (F8).
Em propriedades, altere o nome da faixa para 'faixa'.
Na camada central, desenhe um retângulo cobrindo somente a faixa.
Transforme a camada central em máscara (botão direito > Mask).

* Programação
Abra a janela de ActionScript (F9).
Edite o símbolo do botão.
No final do código do botão, altere a última linha de:
} Para:
_root.abrir(rot);
}
Volte para o documento.
Na timeline do documento, clique no frame 1:
abrir = function(r) {
faixa._x = botao._x - (359-r)*faixa._width/359;
}

abrir(0);