NunoOliveira1977 0 Posted August 21, 2014 Report Share Posted August 21, 2014 (edited) Bom dia, Estou a precisar de uma ajuda para um projecto que integra com xml. Tenho a seguinte estrutura de xml: <pais nome="Brasil"> <distrito nome="Amazonas"> <doenca nome="Malária">Malária</doenca> <doenca nome="Chagas">Chagas</doenca> </distrito> <distrito nome="Bahia"> <doenca nome="Malária">Malária</doenca> </distrito> </pais> no flash, o que precisava fazer é o seguinte: Tenho um mapa, com os vários distritos. Tenho um groupbutton, com vários radios, com o nome de doenças. O que pretendia era, que ao seleccionar uma doença, fosse percorrido o xml até a encontrar, e passasse o nome do "distrito" desse nó para o flash. O obecjtivo principal, é que sempre que existisse a doença, fosse mudada a cor no mapa. Já fiz a parte dos movieclips no mapa e os radios também. Estou com problemas é em extrair os nomes no xml. Alguém me pode ajudar? Obrigado Edited August 22, 2014 by coxosclassic Link to post Share on other sites
coxosclassic 5 Posted August 22, 2014 Report Share Posted August 22, 2014 Boas NunoOliveira1977 Nao consegui perceber muito bem o que pretendes, mas para conseguires extrair o atributo "nome" do xml usa o seguinte: //xml é o teu xml var nome:String = xml.@nome Se precisares de mais ajuda avisa, mas coloca mais codigo que tenhas relativo ao xml. cumps, cc Cumps, cc Link to post Share on other sites
NunoOliveira1977 0 Posted August 22, 2014 Author Report Share Posted August 22, 2014 Olá cc, Desde já muito obrigado pela tua atenção. Vou tentar explicar melhor o que pretendo. No flash tenho um radiobutton com o nome "Malária". O que pretendo basicamente, é que, dentro do meu xml (ver em cima), percorra o xml até encontrar <doenca nome="Malária">Malária</doenca>. Quando encontra, passa para um textbox no flash o nome do distrito associado. Neste caso seria: <distrito nome="Amazonas"> (passaria o nome "Amazonas" para o flash... ... continuando a percorrer o xml, iria encontrar novamente no distrito: <distrito nome="Bahia">. Queria que passasse também o nome "Bahia" para um textbox no flash. Basicamente era isto. Obrigado. Cumps Link to post Share on other sites
coxosclassic 5 Posted August 22, 2014 Report Share Posted August 22, 2014 (edited) Ola, OK, acho que ja percebi. Sugiro que facas o seguinte: no teu evento de "click" dos teus radioButtons: private function onRadioButtonclick(e:MouseEvent):void { //ira servir para guardar os elementos que contenham as doencas var xmlList:XMLList = new XMLList(); // string para colocar no TextField var str:String = ""; switch(e.target) { // radio button da malaria por exemplo. case malariaButton: //pesquisa no XML quais os elementos (distrito) que conteem a doenca "Malária". xmlList = xmlData.distrito.(descendants("doenca").@nome.contains("Malária")); break; // radio button da chaga por exemplo. case chagasButton: //pesquisa no XML quais os elementos (distrito) que conteem a doenca "Malária". xmlList = xmlData.distrito.(descendants("doenca").@nome.contains("Chagas")); break; } //iterar sobre o xmlList para recolher o atributo nome de cada um dos distritos que conteem a doenca for each (var node : XML in xmlList) { str += node.@nome + ", "; } //colocar o texto (str) na tua textField tf.text = str; } Nao testei bem o codigo, pode ser que existam alguns erros, mas a logica sera por aqui... links uteis: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff5.html http://www.republicofcode.com/tutorials/flash/as3xml/ ATENCAO: Este codigo esta em AS3. se estiveres a usar AS2, sera um pouco diferente!! Uma outra sugestao: Como deves saber, o Flash é uma tecnologia muito boa, mas infelizmente ja nao é muito usado. Se estiveres a fazer isto para um website e nao tiveres nenhuma obrigacao para usar Flash, sugiro que uses HTML5 / JS para fazeres isto. Ao usares HTML5 / JS podes contar que todas as pessoas irao poder ver o teu projeto na web (em desktop e mobile) o que é uma grande vantagem em relacao ao Flash Se tiveres duvidas avisa. cumps, cc Edited August 22, 2014 by coxosclassic code fix Cumps, cc Link to post Share on other sites
NunoOliveira1977 0 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Bom dia cc, Vou implementar e depois digo qualquer coisa. Muito obrigado. cumps, Nuno Oliveira Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now