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
