Gente, o XML não pode estar na aplicação,
ele tem que ser externo para ser alterado posteriormente com mais
netos,
eu usei httpservices para buscar o xml externo e ficou assim:

[Bindable]
private var XMLTree:XML;

private function init():void
                        {
                        var request:URLLoader = new URLLoader();
                        request.addEventListener(Event.COMPLETE, setXML);
                        request.load(new URLRequest("../assets/Content.xml"));
                        }

                        public function setXML(e:Event):void
                        {
                        XMLTree = new XML(e.target.data);
                        }


e populei os combos que preciso assim:
<s:DropDownList id="drop1" labelField="@label">
<s:dataProvider>
        <s:XMLListCollection source="{XMLTree.noinicial}"/>
</s:dataProvider>
</s:DropDownList>

porque o DropDownlis so aceita "xlist" e o resultado do urlrequest não
é "xlist" por isso usei desta forma

ate então esta parte esta funcionando, os meu combos estão todos sendo
preenchidos,
quando seleciono o ultimo combo ele deveria passar o valor do item
combo selecionado mais o item da frente que não esta funcionando,

o tree esta assim:

<mx:Tree id="tree" dataProvider="drop1*.selectedItem.nofilhos" <!--
*Aqui no caso vai o ultimo combo-->
labelField="@label" /> nesta tree deveria aparecer os filhos com seus
filhos <-(netos no caso), entenderam.

On Dec 22, 8:02 am, Rogerio Gonzalez <rogerio.gonza...@gmail.com>
wrote:
> boa Luis,
>
> se redimiu!
>
> hehehehe :P
>
> Abraços
>
> Rogério
>
> 2011/12/21 Luis Eduardo <ledua...@suprasis.com.br>
>
>
>
>
>
>
>
>
>
> >    Agora é ooooooutra coisa! hehe
>
> >    Tá bom Rogério, só pq vc falou que eu estou pegando pesado segue um
> > código prontinho que resolve o que eu entendi do problema.
> >    Carolina, veja se realmente é isso mesmo.
>
> >    (De qualquer forma dê uma lida nos links que te passei pra manipulação
> > com E4X pq isso vai te ajudar um tanto quando lidar com XML.)
>
> >    Fico no aguardo pra saber fechou.
>
> >    abraços,
> >    - Luís
>
> > ----------------------------<?**xml version="1.0" encoding="utf-8"?>
> > <s:Application 
> > xmlns:fx="http://ns.adobe.com/**mxml/2009<http://ns.adobe.com/mxml/2009>
> > "
> >               
> > xmlns:s="library://ns.adobe.**com/flex/spark<http://ns.adobe.com/flex/spark>
> > "
> >               
> > xmlns:mx="library://ns.adobe.**com/flex/mx<http://ns.adobe.com/flex/mx>"
> > minWidth="955" minHeight="600">
> > <fx:Declarations>
> > <s:XMLListCollection id="xmllcCombo" source="{xmll.noinicial}"/>
> > <s:XMLListCollection id="xmllcTree"/>
> > <fx:XMLList id="xmll">
>
> > <content>
> > <noinicial label="primeiro no">
> > <nofilho label="filho1">
> > <noneto label="neto1.1"/>
> > <noneto label="neto1.2"/>
> > <noneto label="neto1.3"/>
> > </nofilho>
> > </noinicial>
> > <noinicial label="segundo no">
>
> > <nofilho label="filho2.1">
> > <noneto label="neto2.1"/>
> > <noneto label="neto2.2"/>
> > <noneto label="neto2.3"/>
> > </nofilho>
> > </noinicial>
> > </content>
> > </fx:XMLList>
> > </fx:Declarations>
> > <fx:Script>
> > <![CDATA[
> >            import mx.collections.**XMLListCollection;
> >            import spark.events.IndexChangeEvent;
>
> >            protected function mudaTree(event:**IndexChangeEvent):void {
> >                var cb:ComboBox = event.currentTarget as ComboBox;
> >                var xmltemp:XML = XML(cb.selectedItem).copy();
>
> >                xmllcTree.removeAll();
> >                xmllcTree.source = xmltemp.nofilho;
> >            }
>
> >        ]]>
> > </fx:Script>
>
> > <s:ComboBox x="100" y="100" change="mudaTree(event)"
> > dataProvider="{xmllcCombo}" prompt="Selecione..." labelField="@label"/>
> > <mx:Tree id="secoia" x="100" y="200" width="300" height="400"
> > dataProvider="{xmllcTree}" labelField="@label" />
> > </s:Application>
> > ------------------------------**------------------------------**
> > ------------------------------**-------
>
> > Em 21/12/2011 15:59, Carolina Duval escreveu:
>
> >  Na vardade, obter o xml externo eu consigo, tanto com httpservices ou
> >> com URLoader
> >> e consigo colocar seus valores dentro do combobox, o que não consigo é
> >> pegar o filtro
> >> que estou fazendo com o combobox para acessar o nó especifico do xml;
> >> Exemplo:
>
> >> Tenho esse xml a titulo de exemplo
>
> >> <content>
> >>   <noinicial label="primeiro no">
> >>     <nofilho label="filho1">
> >>        <noneto label="neto1.1"/>
> >>        <noneto label="neto1.2"/>
> >>        <noneto label="neto1.3"/>
> >>     </nofilho>
> >>   </noinicial>
> >>   <noinicia label="segundo no">
> >>     <nofilho label="filho2.1">
> >>         <noneto label="neto2.1"/>
> >>        <noneto label="neto2.2"/>
> >>        <noneto label="neto2.3"/>
> >>     </nofilho>
> >>   </noinicial>
> >> </content>
>
> >> no combobox eu escolho qual o nó inicial,
> >> ai então carrega a tree com a pasta filho e os nos netos.
>
> >> estou carregando o xml assim:
>
> >> [Bindable]
> >>                        private var XMLTree:XML;
>
> >>                        private function init():void
> >>                        {
> >>                        var request:URLLoader = new URLLoader();
> >>                        request.addEventListener(**Event.COMPLETE,
> >> setXML);
> >>                        request.load(new URLRequest("../assets/Content.**
> >> xml"));
> >>                        }
>
> >>                        public function setXML(e:Event):void
> >>                        {
> >>                        XMLTree = new XML(e.target.data);
>
> >>                        }
>
> >> ai no combo coloco o dataprovider
> >> <s:dataProvider>
> >>     <s:XMLListCollection source="{XMLTree.noinicial}"/>
> >> </s:dataProvider>
> >>  no proximo combo coloco
> >> <s:dataProvider>
> >>     <s:XMLListCollection source="{ID_combo1.**selectedItem.nofilho}"/>
> >> </s:dataProvider>
> >> os labelField estão @label ate então OK
>
> >> mas na hora de popular a tree com o resultado dos combos é que esta
> >> com problema
> >> pois não esta aceitando ID_combo.selectedItem.noneto.
>
> >> este é o problema.
>
> >> Obrigado Rogerio e Luiz
>
> >> On Dec 21, 4:32 pm, Rogerio 
> >> Gonzalez<rogerio.gonza...@**gmail.com<rogerio.gonza...@gmail.com>
>
> >> wrote:
>
> >>> Poxa Luis,
>
> >>> Dá uma folga pra Carolina. A maior parte dos cursos considera E4X como
> >>> "Advanced" hehehe.
>
> >>> Sobre a carga de arquivos externos, vc pode usar o httpservice com o
> >>> resultFormat setado como object.
> >>> Desta forma, o seu XML externo já vai ser carregado no httpservice e vc
> >>> poderá acessá-lo como um objecto as3 normal, usando o lastResult.
>
> >>> Acredito q deva ter algum exemplo na documentacao usando tree com object
> >>> vindo de um httpservice.
>
> >>> Agora, se vc realmente quer usar XML no flex, ai o caminho é E4X mesmo.
>
> >>> Abraços
>
> >>> Rogério Gonzalez
>
> >>> 2011/12/21 Luis 
> >>> Eduardo<ledua...@suprasis.com.**br<ledua...@suprasis.com.br>
>
> >>>     Carolina,
> >>>>    Você está fazendo duas coisas erradas ao mesmo tempo:
> >>>>    1) Não gastou um tempinho pra estudar direito como funciona E4X no
> >>>> actionscript
> >>>>    2) Sua pergunta está genérica demais.
> >>>>    Recomendo tentar de novo primeiro passando pelo item 1 e depois pelo
> >>>> 2.
> >>>>    Para o item 1, um bom ponto de partida são esses dois links:
> >>>>    
> >>>> http://livedocs.adobe.com/****flex/3/html/help.html?content=****<http://livedocs.adobe.com/**flex/3/html/help.html?content=**>
> >>>> 13_Working_with_XML_03.html<ht**tp://livedocs.adobe.com/flex/**
> >>>> 3/html/help.html?content=13_**Working_wi..<http://livedocs.adobe.com/flex/3/html/help.html?content=13_Working_wi..>
> >>>> .>
> >>>>    http://www.flexao.net/2009/06/****manipulando-xml-no-flex-com-**
> >>>> **e4x.html<http://www.flexao.net/2009/06/**manipulando-xml-no-flex-com-**e4x.html>
> >>>> <http://www.flexao.**net/2009/06/manipulando-xml-**no-flex-com-e4x.html<http://www.flexao.net/2009/06/manipulando-xml-no-flex-com-e4x.html>
>
> >>>>    Para o item 2, um pouco de código-fonte já ajuda bastante pra gente
> >>>> entender melhor onde foi que vc teve dificuldade.
> >>>>    É que existem varias maneiras de acessar um xml externo e várias
> >>>> maneiras de mostrá-lo.
> >>>>    abraços,
> >>>>    - Luís Eduardo.
> >>>> Em 21/12/2011 12:27, Carolina Duval escreveu:
> >>>>  Alguém sabe como acessar um xml externo e colocar um no especifico
>
> >>>>> para mostrar no tree.
>
> >>>> --
> >>>> 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-unsubscribe@
> >>>> **
> >>>> googlegroups.com<flexdev-**unsubscr...@googlegroups.com<flexdev-unsubscribe
> >>>>  @googlegroups.com>
>
> >>>> Mais opções estão disponíveis emhttp://groups.google.com/****
> >>>> group/flexdev <http://groups.google.com/**group/flexdev><http://groups.
> >>>> **google.com/group/flexdev <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-unsubscribe@**
> > googlegroups.com <flexdev-unsubscr...@googlegroups.com>
> > Mais opções estão disponíveis 
> > emhttp://groups.google.com/**group/flexdev<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

Responder a