Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PERCY.FERNANDES

Armazenar os ítens de um parâmetro de um arquivo XML em uma lista AS3.

Recommended Posts

Boa tarde a todos.

 

Estou implementando um filtro para seleção de arquivos em meu site. Tenho um arquivo XML com a seguinte estrutura:

 

<?xml version="1.0" encoding="utf-8"?>
<root>
<artigo nome="Velocidade das partículas em um gás ideal." indices="a,f,g" texto="Neste artigo estudamos: Cinemática, Termologia e Termodinâmica." link="artigos/Fisica/artFis1.swf" data="21/04/2014"></artigo>
<artigo nome="Construção de pontes." indices="b,c" texto="Neste artigo estudamos: Dinâmica e Estática." link="artigos/Fisica/artFis1.swf" data="24/04/2014"></artigo>
</root>
No swf original, tenho 15 checkboxs que, quando clicados, inserem uma letra (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) em um array (lista), um movieclip (artigos_mc) para receber os nomes dos arquivos que possuem os ítens selecionados pelas checkboxs e um movieclip (carregador_mc) para carregar o arquivo externo que vier a ser escolhido pelo usuário. MEUS ATUAIS PROBLEMAS!!!!
1) Preciso comparar os ítens do array (lista) que possui todos os ítens selecionados nas checboxs com o parâmetro indices no arquivo XML. Caso os ítens sejam todos iguais o parâmetro nome deverá aparecer dentro do movieclip artigos_mc. Não sei como separar os ítens dentro do parâmetro para compará-los com os elementos de meu array.
2) Como transformar os nomes dos artigos que aparecerão no movieclip artigos_mc em links para carregar o link no movieclip carregador_mc?
Este é o código AS3, por enquanto:
import flash.events.Event;
var lista:Array=new Array();
checkbox_mc.filtrar_btn.addEventListener(MouseEvent.CLICK,filtra);
function filtra(ev:Event):void
{
if(checkbox_mc.c1.selected)
{
lista.push("a");
}
if(checkbox_mc.c2.selected)
{
lista.push("b");
}
if(checkbox_mc.c3.selected)
{
lista.push("c");
}
if(checkbox_mc.c4.selected)
{
lista.push("d");
}
if(checkbox_mc.c5.selected)
{
lista.push("e");
}
if(checkbox_mc.c6.selected)
{
lista.push("f");
}
if(checkbox_mc.c7.selected)
{
lista.push("g");
}
if(checkbox_mc.c8.selected)
{
lista.push("h");
}
if(checkbox_mc.c9.selected)
{
lista.push("i");
}
if(checkbox_mc.c10.selected)
{
lista.push("j");
}
if(checkbox_mc.c11.selected)
{
lista.push("k");
}
if(checkbox_mc.c12.selected)
{
lista.push("l");
}
if(checkbox_mc.c13.selected)
{
lista.push("m");
}
if(checkbox_mc.c14.selected)
{
lista.push("n");
}
if(checkbox_mc.c15.selected)
{
lista.push("o");
}
var leitor:URLLoader=new URLLoader();
leitor.load(new URLRequest("artigosFisica.xml"));
leitor.addEventListener(Event.COMPLETE,xmlCompleto);
var xml:XML;
function xmlCompleto(evt:Event):void
{
xml=new XML(evt.target.data);
for(var i:Number=0;i<xml.artigo.length();i++)
{
//Aqui deveria ser feita a comparação entre os ítens do array lista com os elementos do parâmetro indices do arquivo XML
//e feita a inserção dos artigos selecionados no movieclip artigos_mc.
}
}
lista.length=0;
}

 

 

Para ter uma idéia do estágio atual da página acesse http://sinapsesvirtuais.com.br/fisica.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia

 

Para tentar ser mais claro, o primeiro problema se resume a pegar um String tipo "a,b,c" e armazenar cada letra como um elemento de um array tipo ("a","b","c"). Em outras palavras, separar a, b e c que compõe a String em a, b e c elementos distintos em um array.


Opa, bom dia denovo

 

Resolvido o primeiro problema, é só dar um split na String recebida do parâmetro (indices) do xml lido e armazená-lo no array (lista):

 

lista=xml.artigo.@indices.split("");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.