1) desculpa se "insultei sua inteligencia", nao tive a menor intenção de
fazer.
2) qual a diferenca de instanciar um novo objeto dentro da sua classe Tag ou
dentro do mxml??? O consumo é o mesmo.
3) Se for mesmo pra "limpar código", ideal mesmo seria vc ter um objeto Tag
de verdade:
var tag1:Tag = new Tag('label 1');
<s:Button label="{tag1.label}" color="{tag1.cor}" />
mas isso é meio q "gosto pessoal"... enfim... nesse tipo de caso, acho q o
"deixar codigo mais limpo" acaba virando um caso de TI-Centrismo...
recomendo as leituras:
http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/
http://www.becklog.org/2009/08/31/trade-off-com-foco-no-valor-agregado/
[]'s
Em 30 de março de 2011 19:11, Eric Tonussi <[email protected]> escreveu:
>
> Tá insultando minha inteligencia, sr Mário... hehehee. Mas acho que não
> expliquei direito. Usando dessa forma ou vou estar toda hora instanciando um
> objeto, e nao é interessante isso, alem de que eu perderia as propriedades.
> vou colocar meu codigo e voce vai ter uma noção melhor.
>
> Sei que é um pouco mais complexo que o normal, mas com esta implementação
> consegui simplificar bastante meus sistemas. Só queria uma forma de "limpar"
> um pouco o código, trocando *Tag._('tag1').label* por *Tag('tag1').label*,
> e de alguma forma fazer isso chamar um
>
> obs: se ver algum erro no codigo é porque eu dei uma limpada nele. tá tudo
> funcionando perfeitinho aqui ;-)
>
>
> mxml:
>
> <s:Button label="{Tag._('tag1').label}" color="{Tag._('tag1').cor}" />
> <s:Button label="{Tag._('tag2').label}" color="{Tag._('tag2').cor}" />
>
> <s:Button click="{Tag._('tag2').cor = 0xff0000}" />
>
> as:
>
> [Bindable]
> public class Tag {
>
> public var cor:int;
> public var label:String;
>
> public function Tag( tag:String ) {
>
> label = tag;
> cor = int( Math.random() * 0xffffff );
>
> }
>
> /**
> *
> * Métodos e própriedades estáticas
> *
> * */
>
> private static var tags:Array = [];
>
> public static function _( tag:String ):Tag {
>
> if ( !tags[tag] )
>
> tags[tag] = new Tag( tag );
>
>
> return tags[tag];
>
> }
>
> }
>
>
> Em 30 de março de 2011 17:53, Mário Júnior <[email protected]>escreveu:
>
> Isso nao é bem um "casting"... isso se parece mais com uma factory simples,
>> onde no seu metodo vc cria um objeto Teste, seta o valor 'teste 01' em algum
>> atributo lá, e daí devolve esse objeto.
>>
>> Em se tratando de OO, nao é errado isso... tem várias formas de
>> implementar uma Simple Factory
>> (só ressaltando q Simple Factory != Abstract Factory).
>>
>> Oq mais se pareceria com a forma q vc quer é usar um construtor com
>> argumento opcional. Caso o argumento seja passado, vc já seta ele no
>> atributo q deseja, senao for passado entao pode devolver o objeto vazio.
>>
>> var teste : Teste = new Teste('valor 01');
>>
>> []'s
>>
>>
>>
>>
>>
>>
>> Em 30 de março de 2011 17:02, Eric Tonussi <[email protected]>escreveu:
>>
>>>
>>> Alguem sabe como fazer este tipo de casting?
>>>
>>> var teste:Teste = Teste( 'teste 01' ); // queria usar algum metodo
>>> para transformar esse parametro em um obj do tipo Teste
>>>
>>> Atualmente estou fazendo assim:
>>>
>>> var teste:Teste = Teste.getTeste( 'teste 01' ); // sendo que q
>>> getTeste é um metodo estatico que retorna um obj do tipo Teste
>>>
>>> --
>>> 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
>>
>>
>>
>>
>> --
>> Mario Junior
>> http://blog.mariojunior.com/
>> @mariojunior
>>
>> --
>> 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
>
--
Mario Junior
http://blog.mariojunior.com/
@mariojunior
--
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