|
||
|
|
Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Flash » Trabalhando com preços no flash
--> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 22/12/2006Trabalhando com preços no flash
André Ponce Webdeveloper, conhecimentos em actionscript, php, sql, java, rails, ajax, entre outros.
Interesses em programação para jogos e simulação de fisicas.
Algumas linguagens de programação reconhecem numeros com casas decimais separadas por ‘.’(ponto) e, ou ‘,’(vírgula). O PHP por exemplo tem a opção de separar casas de milhar por ponto, e números abaixo de 1 por virgula (10.857,78). É este formato que vamos tratar. Como o flash reconhece este formato como uma string, vamos criar uma classe com 2 métodos, um que converte para numero, no qual poderemos realizar cálculos dentro do flash, e outro que converte no formato de preço, que será uma string, portanto não podemos realizar cálculos quando estiver neste formato. Se você for trabalhar com uma loja virtual ou algo do gênero esta classe será útil. - Converte.as class Converte{ /** Método que converte String em numero */ static public function convertePonto(valor:String):Number{ //separa o valor recebido em um array //varre o array, revome os pontos existentes, e substitui as virgulas por ponto if(separa[i]=="."){ continue; }else if(separa[i]==","){ separa[i] = "."; } numero += separa[i]; } //converte a string em numero, e retorna este numero } /** Método que converte Numero em String */ static public function converteVirgula(valor:Number):String{ //adciona em cada posição de um array //substitue o ponto por virgula if(separa[i]=="."){ separa[i] = ","; } } //converte o array em uma string //se o valor da posição for diferente de -1, vamo separar a string e 2 partes, if(posicao!=-1){ valor_d = valor_string.substr(0, posicao); valor_e = valor_string.substr(posicao); }else{ valor_d = valor_string; valor_e = ""; } //vamos inicar a variavel valor_string como uma string vazia //agora vamos tratar do lado direito for(var i=valor_d.length-1; i>=0; i--){ valor_string += separa[i]; if((valor_d.length-i)%3==0){ valor_string += "."; } } //os pontos foram adcionados, agora precisamos inverte-lo, pois estao //este if corrige um pequeno bug, se 6 numeros por exemplo if(separa[0]=="."){ valor_string = valor_string.slice(1); } //terminamos de tratar o lado direito, agora vamos juntar com o lado esquerdo //se nao houver casas abaixo de zero, ou seja, se o lado esquerdo estiver vazio, if(valor_string.lastIndexOf(",")==-1){ valor_string += ",00"; } //retornamos o valor } } import Converte;
Espero que seja útil. Arquivos anexos ao artigo
Jonas Keunecke <jonas@criar.arq.br>
Olá Andre
Gostei do script e já utilizei, eu não sou programador mas faço pequenas ferramentas que me ajudam no dia a dia. Mas tenho uma observação. Ao fazer cálculos o script altera o número de casas decimais após a virgula. ![]() ![]() ![]() ![]() ![]() Carlos Roberto <Carlos_roberto_88@hotmail.com>
Você poderia ensinar a fazer Entrada de Site em Flash ?
Mto bom seu tutorial ;) ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|