Segue um exemplo que fiz. http://diegofeijo.wordpress.com/2010/02/19/flex3-tree-dinamico-com-xml/
On 18 ago, 10:12, Samuel Soares <samuelesoa...@gmail.com> wrote: > Bom dia, tenho que montar o menubar da minha aplicação de forma > dinâmica: o usuário faz o login, após isso o menu é montado de acordo > com as pemissões de acesso do usuário. Se o usuário não tem acesso a > uma opcao o menu aparece desabilitado. Sei que tenho que passar o > parametro 'enabled' como false; > > Estou tentando com ArrayCollection: > > 1. se eu montar primeiro o arraycollection na inicialização, ele > funciona, mas não consigo alterar o 'enabled' do menu: > > [Bindable] > private var menuArrc:ArrayCollection = new ArrayCollection( > [{label:"Cadastros" enabled:'false', children:[{label:" Clientes "}, > {label:" Outros ",children:[{label:" Qqualuqer coisa"}]}]}, > {label:" Vendas ", children:[{label:"Teste "}]}, > {label:"Consultas ", children:[{label:"Teste "}]}, > {label:"Relatórios ", children:[{label:" Teste "}]} > ]); > > <mx:MenuBar id="menu" y="93" left="10" right="10" height="25" > dataProvider="{menuArrc}" itemClick="Menu_Click(event);"></mx:MenuBar> > > 2. se eu montar o arraycollection após o login, o menu fica [object > Object] e aparece somente o menu principal, seus sub-menus nem > aparecem: > > private var menuArrc:ArrayCollection = new ArrayCollection(); > > private function login():void > { > ... > > MontaMenu(); > > ... > > } > > private function MontarMenu():void > { > menuArrc.addItem([{label:"Cadastros", children:[{label:" Clientes "}, > {label:" Outros ",children:[{label:" Qqualuqer coisa"}]}]}]); > > } > > <mx:MenuBar id="menu" y="93" left="10" right="10" height="25" > dataProvider="{menuArrc}" itemClick="Menu_Click(event);"></mx:MenuBar> > > 3. Eu até usei o xmllist, como na documentação, mas o problema sempre, > como nos outros, é que tenho que alterar os dados do menu após o > login. Eu não consegui alterar o item do menu, usando o xmllist. Por > exemplo, alterar o atributo 'enabled'; > > alguém tem alguma idéia de como resolver? Obrigado. -- 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