Boa noite senhores, depois da ajuda do Rodrigo e do Mário, peguei o
componente da DClick e coloquei umas coisinhas a mais para atender a minha
necessidade, segue o código pra quem se interessar... comentei algumas
coisas pra facilitar o entendimento. Quem puder melhorar o componente, me
manda pra eu melhorar aqui também...

Agradeço a costumeira força de todos...

Grande abraço

package com
{
    import flash.globalization.LocaleID;
    import flash.globalization.NumberFormatter;

    import mx.formatters.NumberBase;

    import spark.components.*;

    public class NumberInput extends spark.components.TextInput
    {

        public function NumberInput()
        {
            super();
            return;
        }

        /**
         * Change decimal values pt_BR -> en_US
         */
        public var setDecimalConversion:Boolean
       /**
        * Change decimalDigits
        */
        public var precision:int

        //-> Seta a formatação para a linguagem do programa...
        private var nf:NumberFormatter = new
NumberFormatter(LocaleID.DEFAULT);
        //-> trocar as vírgulaspor pontos é um saco...
        private var nbENUS:NumberBase = new NumberBase("," , ".","." ,",");

        //-> precisa bindar as propriedades para atualizar o model enquanto
digita
        [Bindable("change")]
        [Bindable("textChanged")]
        public function get textNumber():Number
        {
            if(!setDecimalConversion)
            {
                //-> aqui a mágica das vírgulas e pontos acontece
                return text != "" ? Number(nbENUS.parseNumberString(text)) :
NaN;
            }
            else
            {
                return text != "" ? Number(nbENUS.parseNumberString(text)) :
NaN;
            }
        }

        public function set textNumber(value:Number):void
        {
            nf.fractionalDigits = precision == 0 ? precision : -1;
            if(!setDecimalConversion)
            {
                //-> aqui a mágica de aparecer os números formatados
acontece
                text = isNaN(value) ? "" : nf.formatNumber(value);
            }
            else
            {
                text = isNaN(value) ? "" : nf.formatNumber(value);
            }
            return;
        }
    }
}

2011/7/13 Bruno Tourinho <bruno...@gmail.com>

> Verdade Rodrigão coloquei o SWIZ no título porque estou começando a
> utilizar e gostei bastante dele, mas aparentemente vou ter que criar umas
> outras classes pra resolver esses probleminhas enquanto dona Adobe não
> resolve... esse exemplo que você mandou é legal, já tinha visto, mas achei
> que houvesse uma maneira mais simples...
>
> Valeu a força... abraço...
>
>
> 2011/7/13 Rodrigo da Rosa Elesbão <slipkna...@gmail.com>
>
>> Cara o problema não é no SWIZ, mas no two way data binding de String para
>> Number, o problema fica no caso de tentar atribuir uma String à propriedade
>> Number, pois Number já tem o metodo toString que é chamado automaticamente,
>> já na hora de atribuir a string para number que acontece o problema.
>>
>> Existem diversas soluções para esse caso utilizando getters and setters,
>> Object type cast, mas a mais interessante que eu achei foi essa:
>>
>> http://rederia.net/2011/02/27/two-way-data-binding-%E2%80%93-flex-4-%E2%80%93-problema-de-conversao-de-tipo/
>>
>> Tá em português, eu não testei aqui, mas o cara tem um exemplo lá
>> funcionando, espero ter ajudado.
>> --
>> Att,
>> Rodrigo da Rosa Elesbão <http://about.me/relesbao>
>> http://devandcoffee.com
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a