<?xml version="1.0" encoding="iso-8859-1"?> <lista> <noticia titulo="titulo da noticia 1"/> <noticia titulo="titulo da noticia 2"/> <noticia titulo="titulo da noticia 3"/> <noticia titulo="titulo da noticia 4"/> </lista>
Criei algumas funções para fazer isso, primeiro eu chamo uma função para ler o xml e armazenar o seu conteúdo em um array, depois eu chamo um setInterval para que a cada 3 segundos o título da notícia seja trocada pelo título da proxima noticia do array.
Eu sei que a leitura do xml está correta, pois testei ela, porém as variáveis que uso para controlar as funções retornam undefined. Inclusive, eu só consigo ler o array dentro da função onLoad do xml, fora dela o array também começa a me retornar undefined.
Eu pesquisei na internet sobre variaveis globais no flash, achei o _global e o _root, mais não consegui fazer funcionar, por favor, alguém me ajude a colocar esse código funcionando, segue abaixo o código do meu flash:
// variavel que recebe o indice do item do array a ser mostrado em seguida var indice:Number; // array com titulos das noticias var tituloDinamico:Array = new Array; var timer; function leXml(){ var arquivo:XML = new XML(); arquivo.ignoreWhite = true; arquivo.onLoad = function(sucess) { if (sucess) { var nodes = arquivo.firstChild.childNodes; for (var i = 0; i<nodes.length; i++) { tituloDinamico.push(nodes[i].attributes.titulo); } } } arquivo.load("lista.xml"); indice = 0; proximaNoticia(indice); timer = setInterval(trocaIndice(), 3000); } function proximaNoticia(posicao){ // atualiza o texto no flash dinamicamente meuTexto.text = tituloDinamico[posicao]; } function trocaIndice(){ if(indice == (tituloDinamico.length - 1)){ clearInterval(timer); indice = 0; proximaNoticia(indice); } else{ indice ++; proximaNoticia(indice); } } leXml(); // inicia a execução
Desde já, obrigado.