Boa Tarde Pessoal, Sempre quebrei a cabeça com varios componentes de MaskInput mas nenhum nunca resolvia meu problema... O que eu precisava era simples, formatar durante a digitacao um valor para dinheiro.... Dei varias googladas e nada também..
Então tentei fazer na mão um pogzão e até que funcionou..... Sendo assim estou compatilhando com vocês para quem tiver ideias de aperfeiçoar.... Abraços !!!! --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [EMAIL PROTECTED] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="Init();"> <mx:Script> <![CDATA[ import mx.formatters.CurrencyFormatter; import flash.events.KeyboardEvent; //Formatador de Dinheiro public var formata:CurrencyFormatter = new CurrencyFormatter(); //Armazena os numeros digitados //(Obs: Ao inves de pegar valores do textInput public var charsDigitados:String = new String(''); public var strNums:String = "0123456789"; /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * FUNCAO DE INICIALIZACAO @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ public function Init():void { //Formato de exibicao do dinheiro //------------------------------------- formata.decimalSeparatorTo = ','; formata.thousandsSeparatorTo = '.'; formata.currencySymbol = 'R$'; formata.precision = 2; //------------------------------------- } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * FUNCAO DE FORMATACAO PARA DINHEIRO @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ public function FORMATA_Dinheiro(campo:TextInput,ev:KeyboardEvent):void { //Se usuario clicou em DEL ou Backspace //apague o ultimo numero digitado if(ev.charCode == 8 || ev.charCode == 127) charsDigitados = charsDigitados.substr(0,charsDigitados.length - 1); //Se tiver menos de dois digitos formate como centavos if(charsDigitados.length < 2) { charsDigitados = charsDigitados + strNums.charAt(ev.keyCode - 48); if(charsDigitados.length == 0) campo.text = formata.format("0"); if(charsDigitados.length == 1) campo.text = formata.format("0.0"+ charsDigitados); if(charsDigitados.length == 2) campo.text = formata.format("0."+ charsDigitados); } else { //Se o caracter digitado for um numero if (ev.keyCode > 47 && ev.keyCode < 58) charsDigitados = charsDigitados + strNums.charAt(ev.keyCode - 48); //Exibe com a formatacao de centavos campo.text = formata.format(charsDigitados.substr(0,charsDigitados.length - 2) + "." + charsDigitados.substr(charsDigitados.length - 2,charsDigitados.length)); } } ]]> </mx:Script> <mx:HBox> <mx:Label text="Digite o valor:" /> <mx:TextInput textAlign="right" id="valor_dinheiro" keyUp="FORMATA_Dinheiro(valor_dinheiro,event)" /> </mx:HBox> </mx:Application>
