é 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;
TextInput(componente).height =
this.height;
this.addChild(componente);
componente.addEventListener(FlexEvent.ENTER,onEnter);
componente.addEventListener
(FlexEvent.VALUE_COMMIT,onDataChange);
break;
}
valor = da...@value;
}
entenderam? dependendo do valor que vem de um xml meu itemrenderer
terá um componente específico, tenho um campo, que o evento click
dispara informando qual xml usar, na primeira vez que o itemrenderer é
criado vem todo estranho, alguns campos aparecem, outros não, porém se
eu clicar em outro campo e voltar para esse fica show e nunca mais dá
esse bug, como se a segunda vez o componente está em memória e ele já
carrega direito, sei lá, muito estranho, então resolvi compartilhar o
meu problema e gostaria de saber se alguém já passou por isso ou tem
alguma sugestão?
Cumps.
--
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