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>

Responder a