Carregando XML com Actionscript 3.0
Neste tutorial iremos aprender como carregar um xml usando Actionscript 3.0, assim iremos entender como o suporte ao xml esta muito mais simples…
Primeiramente iremos criar o XML salvando o mesmo na pasta em que se encontra o arquivo .swf
agenda.xml
<?xml version=”1.0″ encoding=”utf-8″ ?>
<agenda>
<contatos>
<contato>
<nome>Danillo Castilho</nome>
<telefone>1111-1111</telefone>
<celular>2222-2222</celular>
</contato>
<contato>
<nome>Danillo Castilho</nome>
<telefone>3333-3333</telefone>
<celular>4444-4444</celular>
</contato>
</contatos>
<contatos>
<contato nome=”Danillo Castilho” telefone=”5555-5555″ celular=”6666-6666″ />
<contato nome=”Danillo Castilho” telefone=”7777-7777″ celular=”8888-8888″ />
</contatos>
</agenda>
Agora iremos ao actionscript, primeiramente iremos criar as variaveis e as propriedados para carregar o XML
System.useCodePage = true;
var xml:String = “agenda.xml”;
var xmlRequest:URLRequest = new URLRequest(xml);
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(xmlRequest);
Com isto o xml já será carregado! para visualização teremos de aplicar um listener no URLLoader…
xmlLoader.addEventListener(Event.COMPLETE, readXML);
e depois iremos navegar no XML, esta navegação será de 2 modos para visualizar o poder do Actionscript 3.0
function readXML(e:Event):void {
var i:int = 0;
var contacts:XML = new XML(e.target.data);
contacts.ignoreWhitespace = true;
var list:XMLList = contacts.contatos;
trace(“FIRST LIST\n”);
for( i = 0; i < list[0].contato.length(); i++ ){
trace(“————————————————–”);
trace(list[0].contato[i].nome);
trace(list[0].contato[i].telefone);
trace(list[0].contato[i].celular);
trace(“————————————————–\n”);
}
trace(“SECOND LIST\n”);
for( i = 0; i < list[1].contato.length(); i++ ){
trace(“————————————————–”);
trace(list[1].contato[i].@nome);
trace(list[1].contato[i].@telefone);
trace(list[1].contato[i].@celular);
trace(“————————————————–\n”);
}
}
Assim teremos a leitura do XML por completo:
System.useCodePage = true;
var xml:String = “agenda.xml”;
var xmlRequest:URLRequest = new URLRequest(xml);
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(xmlRequest);
xmlLoader.addEventListener(Event.COMPLETE, readXML);
function readXML(e:Event):void {
var i:int = 0;
var contacts:XML = new XML(e.target.data);
contacts.ignoreWhitespace = true;
var list:XMLList = contacts.contatos;
trace(“FIRST LIST\n”);
for( i = 0; i < list[0].contato.length(); i++ ){
trace(“————————————————–”);
trace(list[0].contato[i].nome);
trace(list[0].contato[i].telefone);
trace(list[0].contato[i].celular);
trace(“————————————————–\n”);
}
trace(“SECOND LIST\n”);
for( i = 0; i < list[1].contato.length(); i++ ){
trace(“————————————————–”);
trace(list[1].contato[i].@nome);
trace(list[1].contato[i].@telefone);
trace(list[1].contato[i].@celular);
trace(“————————————————–\n”);
}
}
Até a próxima pessoal!