Estoy utilizando el lector de noticias en flash con Xml de "jmontoya" que encontré entre los turoriales de Cristalab. Es muy práctico y sencillo, pero estoy intentando colocar un temporizador dentro del código sin mucho éxito. Lo que quiero es hacer que el noticiero cambie la noticia automáticamente cada tantos segundos y vuelva a empezar al llegar a la última.
Lo he adaptado del original para que no utilice imágenes, por que no me interesa en este caso
Este es el código:
Código :
//Permite caracteres tradicionales como letras con tilde la ñ, etc. System.useCodepage = true; //Se declara la variable indice de tipo número (utilizada para referencia la noticia a mostrar) var indice:Number; //Se declara la variable noticias_xml de tipo XML (utilizada para almacenar el documento xml) var noticias_xml:XML; /* Funcion cargarDatos (utilizada para cargar y cambiar las noticias en el documento) Esta función recibe un parámetro "_indice" que corresponde al elemento noticia a mostrar */ function cargarDatos(_indice:Number){ //Se inicializan variables utilizadas para almenar los datos de una noticia var fecha:String; var titulo:String; var mensaje:String; var imagen:String; //Recuperando datos del objeto xml //Se accede al primer elemento [noticia] y se recupera la fecha desde el atributo [fecha] fecha = noticias_xml.firstChild.childNodes[_indice].attributes.fecha; //Se accede al primer hijo de elemento [noticia] y se recupera al valor del primer elemento de [titulo] titulo = noticias_xml.firstChild.childNodes[_indice].firstChild.firstChild.nodeValue; //Se accede al segundo hijo de elemento [noticia] y se recupera el valor del primer elemento de [mensaje] mensaje = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue //Mostrando los datos recuperados en el cuado de texto mensaje_txt _root.mensaje_txt.htmlText = ""; _root.mensaje_txt.htmlText += "<p align='center'><font color='#006633' size='12'><b>" + titulo + "</b></font></p>"; _root.mensaje_txt.htmlText += "<p><font size='10'>" + mensaje + "</font>"; _root.mensaje_txt.htmlText += "<font color='#666666' size='10'>Publicado: " + fecha + "</font></p>"; } //Función que permite avanzar a la [noticia] siguiente almacenada en el objeto xml siguiente_btn.onPress = function(){ //comprobando si existe el siguiente elemento [noticia] if(noticias_xml.firstChild.childNodes[indice+1] != null){//retringue a avanzar solo si hay una [noticia] siguiente indice++; //incrementado en uno el indice cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla } } //Función que permite retroceder a la noticia anterior almacenada en el objeto xml anterior_btn.onPress = function(){ //comprobando si existe una elemento [noticia] anterior if(noticias_xml.firstChild.childNodes[indice-1] != null){//retringue a avanzar solo si hay una [noticia] anterior indice--; //reducciendo en uno el indice cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla } } //Inicializaciones indice=0; //inicializando indice en 0 para mostrar la primera noticia //creando el objeto noticias_xml de typo XML noticias_xml = new XML(); //Permite que el objeto XML ignore los espacios en blanco entre marca y marca del documento XML noticias_xml.ignoreWhite = true; //El método load() permite cargar el documento xml "noticias.xml" noticias_xml.load("noticias.xml"); //El evento onLoad de activa cuado se haya cargado el documento noticias.xml noticias_xml.onLoad = function(){ //Se llama a la funcion cragarDatos para mostar la primera noticia (esto por la variable indice en 0) cargarDatos(indice); }
Alguien me podría ayudar para introducir un temporizador que haga pasar las noticias solas y vuelva a empezar desde el principio cuando llegue a la última?
Muchas gracias por adelantado.