sábado, 27 de outubro de 2007

Tutorial 17: Calculadora

O tópico já diz tudo. Tutorial para fazer uma calculadora básica.



Leia mais! * Montagem
Crie um novo símbolo para calculadora (Ctrl+F8).
No símbolo, desenhe todos botões da calculadora.
Transforme cada botão em um símbolo (F8).
Na janela de propriedades, altere o nome de cada botão para 'b1', 'b2',..., 'b9' (para os botões de 1 a 9), 'bmais', 'bmenos', 'bvezes', 'bdivisao', 'bigual', 'bponto' e 'bc' (para os botões +, -, *, /, =, ., C).
Crie uma caixa de texto dinâmica.
Altere a propriedade 'Var' do texto para 'atual'.
Volte para o documento (Ctrl+E).
Abra a biblioteca de símbolos (Ctrl+L).
Instancie (clique e arraste) o símbolo da calculadora.

* Programação
Abra a janela de ActionScript (F9).
Edite o símbolo da calculadora.
Na timeline do botao, clique no frame 1:
limite = 10;

limpar = function() {
atual = 0;
operacao = 0;
zerar = false;
resultado = 0;
ponto = 0;
}

tecla = function(v) {
if (zerar) { atual=0; zerar=false; }
if (length(atual.toString())<limite) {
if (ponto==0) atual=atual*10+v;
else atual+=v/Math.pow(10,ponto++);
}
}

calcular = function(oper) {
switch(operacao) {
case 0: resultado = atual; break;
case 1: resultado += atual; break;
case 2: resultado -= atual; break;
case 3: resultado *= atual; break;
case 4: resultado /= atual; break;
}
zerar = true;
atual = resultado;
operacao = oper;
ponto = 0;
}

bc.onPress = function() { limpar(); }
b0.onPress = function() { tecla(0); }
b1.onPress = function() { tecla(1); }
b2.onPress = function() { tecla(2); }
b3.onPress = function() { tecla(3); }
b4.onPress = function() { tecla(4); }
b5.onPress = function() { tecla(5); }
b6.onPress = function() { tecla(6); }
b7.onPress = function() { tecla(7); }
b8.onPress = function() { tecla(8); }
b9.onPress = function() { tecla(9); }
bmais.onPress = function() { calcular(1); }
bmenos.onPress = function() { calcular(2); }
bvezes.onPress = function() { calcular(3); }
bdivisao.onPress = function() { calcular(4); }
bigual.onPress = function() { calcular(0); }
bponto.onPress = function() { if (ponto==0) ponto=1; }

limpar();