José Procura nos arquivos da lista nas ultimas 3 semanas, O problema é que a maneira como você esta fazendo para trabalhar com XML em controles do Flex4 que está errada. A nova política dos componentes baseados em Lista não só o PopUpButton, mais List, ListBase,Datagrid,AdvancedDatagrid,DataGroup é tratar todos como vetores e assim tratar melhor todos que forem recebidos como elementos e assim o GC do Flash Player limpar.
Atenciosamente ---------------------------- Igor Costa www.igorcosta.com www.igorcosta.org 2010/7/1 José Augusto Freire <j...@procyon.com.br> > Boa Noite! > > Estou passando um programa criado no Flex Builder 3 para a versão do Flash > Builder 4. > > Importei o projeto com a opção de compatibilidade para a versão 3. > > Meu programa cria um menu dinamico conforme o XML recebido, com o > componente "PopUpMenuButton", e estava funcionando corretamente na versão 3, > no entanto na versão 4 simplesmente ele não apresenta o texto dos menus e > submenus, ficam em branco, porém apresentam o tamanho correto e se clicados > abrem a opção correta, só não mostram o texto. > > Alguem teria alguma idéia do que pode estar acentecendo? > > Eis o trecho do código: > > > // Trata a solicitação dos Menus > private function ValMenuResult(event:ResultEvent):void { > ValMenuXML = new XML(event.result); > > //Gerenciamento de Memória - Limpando... > HttpServ.removeEventListener(ResultEvent.RESULT,ValMenuResult); > HttpServ.removeEventListener(FaultEvent.FAULT,onFaultM); > > var wlitem:int; > var wlmodulo:String; > var wlPopButton:PopUpMenuButton = new PopUpMenuButton; > var wlcont:int = 0; > > // Destroi o Menu existente > var caixa:Array = mBar.getChildren(); > var texto:String; > for (var i:int = 0; i < caixa.length; i++) { > texto = caixa[i].toString(); > if (texto.search("gc") > -1 || > texto.search("gd") > -1 || > texto.search("gf") > -1 || > texto.search("go") > -1 || > texto.search("gp") > -1 || > texto.search("gv") > -1 || > texto.search("gw") > -1) { > mBar.removeChild(caixa[i]); > } > } > > // Cria o Novo Menu > for each(var wlxml:XML in ValMenuXML.menu){ > wlitem = int(wlx...@name); > wlmodulo = wlx...@modulo; > > wlPopButton = new PopUpMenuButton; > > wlPopButton.dataProvider = wlxml.item; > wlPopButton.width = 110; > wlPopButton.height = 24; > wlPopButton.label = wlx...@label; > wlPopButton.labelField = "@label"; > wlPopButton.labelPlacement = "right"; > wlPopButton.enabled = true; > wlPopButton.name = wlmodulo; > wlPopButton.id = wlmodulo; > > wlPopButton.addEventListener(MenuEvent.ITEM_CLICK,itemClickHandler); > wlPopButton.toolTip = "Módulo " + wlx...@label; > > switch(wlmodulo){ > case "gc": wlPopButton.setStyle("icon",btIconContabil); > break; > case "gd": wlPopButton.setStyle("icon",btIconDiario); > break; > case "gf": wlPopButton.setStyle("icon",btIconFinanc); > break; > case "go": wlPopButton.setStyle("icon",btIconOficina); > break; > case "gp": wlPopButton.setStyle("icon",btIconPecas); > break; > case "gv": wlPopButton.setStyle("icon",btIconSeminovos); > break; > case "gw": wlPopButton.setStyle("icon",btIconGerenc); > break; > } > > mBar.addChildAt(wlPopButton,wlcont); > wlcont += 1; > > } > } > > Trecho do XML: > > <menus> > <menu label="Titulo GC" modulo="gc" name="1"> > <item codprg="gc0001" label="Item GC-001"/> > <item codprg="gc0002" label="Item GC-002"/> > </menu> > <menu label="Titulo GD" modulo="gd" name="2"> > <item codprg="gd0001" label="Item GD-001"/> > <item codprg="gd0002" label="Item GD-002"/> > <item codprg="gd0003" label="Item GD-003"> > <subitem codprg="gd0031" label="SubItem GD-031"/> > <subitem codprg="gd0032" label="SubItem GD-032"/> > <subitem codprg="gd0033" label="SubItem GD-033"/> > <subitem codprg="gd0034" label="SubItem GD-034"/> > </item> > <item codprg="gd0004" label="Item GD-004"/> > <item codprg="gd0005" label="Item GD-005"/> > </menu> > </menus> > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > 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 flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev