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 <[email protected]>
> 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 <[email protected]>
>
>> 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 [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
>>
>
>
--
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