Galera. RESOLVIDO vou explicar o problema e a solução para se alguém
precisar um dia, ok ;)

Antes de mais nada mudei como a gabriela recomendou, set data um
invalidateProperties, override no commitPropertis onde ficou aquele
switch no código acima, só que no commitProperties ou em outro
qualquer metodo eu não posso tentar recriar o componente, explico
melhor, se meu componente é um UIComponent e no createChildren eu
instanciar assim

componente = new UIComponent()

não adianta eu tentar instanciar o componente como TextInput ou
ComboBox, no commitProperties serve para alterar as propriedades do
componente e não instanciar novamente como eu fazia no switch

componente = new ComboBox()...

então o que eu fiz, criei outro componente que é um viewStack e cada
child é um desses componente possiveis que eu preciso, então no
commitProperties de vez de instanciar um novo eu só informo o
selectChild :) aí funciounou showwwww

espero que ajude alguém!

Cumps.

On 2 fev, 11:35, Janderson <[email protected]> wrote:
> antes de mais nada obrigado pela ajuda!
>
>  "puxa.. como é importante eu conhecer o ciclo de vida dos
> componentes" hehe foi o que passou em minha mente...
>
> então, li o material que o fabiophx me indicou(muito obrigado ;) ) e
> tentei usar a dica da Gabriela tbm(obrigado) e realmente tem algo
> errado ou estou deixando de fazer, atualmente o que eu fiz, no
> commitProperties usei um callLater para chamar uma função minha,
> resumindo, funcionou mais lógico que não como eu quero que funcione,
> antes de perguntar vou ler de novo e com calma o material que me
> passaram, confesso que um material especifico de bons padrões para
> usar itemrenderer eu não achei, só algumas dicas, mas enfim... vamos
> estudar um pouco mais e tentar resolver esse problema de uma forma
> correta.
>
> Cumps
>
> On 2 fev, 08:56, fabiophx <[email protected]> wrote:
>
>
>
> > Janderson,
> >       Para saber mais sobre o ciclo de vida dos componentes:
> >              http://www.adobe.com/support/documentation/en/flex/=>
> > Creating and Extending Adobe Flex 3 Components
> >              http://www.flexmania.com.br/gravacoes.php=> Criando e
> > estendendo componentes para o Flex 3 (minha palestra)
>
> > []s
> > Fabio da Silvahttp://fabiophx.blogspot.com/
>
> > On 1 fev, 17:52, Janderson <[email protected]> wrote:
>
> > > é galera, essa é mais uma história de um programador que está tendo
> > > problemas com itemrenderer nos datagrids, só que o meu problema é
> > > diferente da grande maioria, não está ligado ao problema de dados
> > > quando se tem o scroll do mouse, muito menos por ser itemrenderer e
> > > itemeditor, meu problema está ao meu ver na serialização do
> > > componente, vou explicar melhor:
>
> > > Tenho um itemrenderer que é dinamico, como assim? vou mostrar o
> > > override set data:
>
> > > override public function set data(value:Object):void{
> > >                                 super.data = XML(value);
>
> > >                                 this.removeAllChildren();
> > >                                 var comp:String = da...@comp;
> > >                                 switch (comp){
> > >                                         case "checkbox":
> > >                                                 componente = new 
> > > CheckBox();
> > >                                                 var selected:Boolean = 
> > > (da...@value == "true");
> > >                                                 
> > > CheckBox(componente).selected = selected;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 break;
> > >                                         case "combobox":
> > >                                                 componente = new 
> > > ComboBox();
> > >                                                 
> > > ComboBox(componente).dataProvider = XMLList(data.subprop)
> > >                                                 
> > > ComboBox(componente).width = this.width;
> > >                                                 
> > > ComboBox(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 for (var i:int = 0; i < 
> > > XMLList(data.subprop).length(); i++){
> > >                                                         if 
> > > (data.subprop[...@value == da...@value){
> > >                                                                 
> > > ComboBox(componente).selectedIndex = int(Number(data.subprop
> > > [...@index));
> > >                                                         }
> > >                                                 }
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 break;
> > >                                         case "numeric":
> > >                                                 componente = new 
> > > NumericStepper();
> > >                                                 
> > > NumericStepper(componente).value = Number(da...@value);
> > >                                                 
> > > NumericStepper(componente).maximum = Number
> > > (da...@max);
> > >                                                 
> > > NumericStepper(componente).minimum = Number
> > > (da...@min);
> > >                                                 
> > > NumericStepper(componente).width = this.width;
> > >                                                 
> > > NumericStepper(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 
> > > componente.addEventListener(FlexEvent.ENTER,onEnter);
> > >                                                 break;
> > >                                         case "campo":
> > >                                                 componente = new 
> > > TextInputImage();
> > >                                                 
> > > TextInputImage(componente).text = da...@value;
> > >                                                 
> > > TextInputImage(componente).width = this.width;
> > >                                                 
> > > TextInputImage(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 
> > > componente.addEventListener("clickImage",onClickCampo);
> > >                                                 break;
> > >                                         case "lista":
> > >                                                 componente = new 
> > > TextInputImage();
> > >                                                 
> > > TextInputImage(componente).text = da...@value;
> > >                                                 
> > > TextInputImage(componente).width = this.width;
> > >                                                 
> > > TextInputImage(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 
> > > componente.addEventListener("clickImage",onClickLista);
> > >                                                 break;
> > >                                         case "color":
> > >                                                 componente = new 
> > > TextInputColor();
> > >                                                 
> > > TextInputColor(componente).text = da...@value;
> > >                                                 
> > > TextInputColor(componente).width = this.width;
> > >                                                 
> > > TextInputColor(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 break;
> > >                                         case "formato":
> > >                                                 componente = new 
> > > TextInputImage();
> > >                                                 
> > > TextInputImage(componente).text = da...@value;
> > >                                                 
> > > TextInputImage(componente).width = this.width;
> > >                                                 
> > > TextInputImage(componente).height = this.height;
> > >                                                 this.addChild(componente);
> > >                                                 
> > > componente.addEventListener(Event.CHANGE,onChange);
> > >                                                 
> > > componente.addEventListener("clickImage",onClickFormato);
> > >                                                 break;
> > >                                         default:
> > >                                                 componente = new 
> > > TextInput();
> > >                                                 
> > > TextInput(componente).text = da...@value;
> > >                                                 
> > > TextInput(componente).width = this.width;
> > >    
>
> ...
>
> mais »

-- 
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

Responder a