La modificación consistió en añadir a este sencillo pero eficaz script, un temporizador, de tal forma que cambie la noticia cada cierto tiempo, y vuelva al empezar de nuevo cuando ha mostrado la última noticia.
Aquí el código Original:
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 //Se accede al último hijo de elemento [noticia] y se recupera el valor del primer elemento de [imagen] imagen = noticias_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue //Mostrando los datos recuperados en el cuado de texto mensaje_txt y cargando la imagen en pantalla_mc _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>"; //Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml _root.pantalla_mc.loadMovie(imagen); } //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); }
Aquí el código Modificado:
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 //Se accede al último hijo de elemento [noticia] y se recupera el valor del primer elemento de [imagen] imagen = noticias_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue //Mostrando los datos recuperados en el cuado de texto mensaje_txt y cargando la imagen en pantalla_mc _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>"; //Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml _root.pantalla_mc.loadMovie(imagen); } //Función que permite avanzar a la [noticia] siguiente almacenada en el objeto xml siguiente_btn.onPress = function(){ indice=(noticias_xml.firstChild.childNodes[indice+1] != null)?indice+1 : 0; //incrementado en uno el indice cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla } //Función que hace avanzar a la [noticia] siguiente automáticamente cada cierto tiempo function siguiente(){ siguiente_btn.onPress() } var refresca = setInterval(siguiente, 5000)// 5000 = cada 5 segundos. //Función que permite retroceder a la noticia anterior almacenada en el objeto xml anterior_btn.onPress = function(){ //comprobando si existe un elemento [noticia] anterior if(noticias_xml.firstChild.childNodes[indice-1] != null){//restringue a avanzar solo si hay una [noticia] anterior indice--; //reducciendo en uno el indice cargarDatos(indice); //recuperando 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); }
Bueno, espero sirva de ayuda a otras personas. A mi me ayudó mucho después de pasarme días buscando algo así. Gracias a Montoya, Solisarg y Cristalab.
Hace tiempo de esta modificación, por eso pido disculpas por olvidarme de devolver la información recopilada en su momento. Al estar metido de pleno en el proyecto de mi web, se me fue la olla totalmente. Lo he recordado por que un usuario del foro me envió un MP pidiéndome el script arreglado. Lo conservo modificado sobre el .FLA original, por si le interesa a alguien, o a Cristalab.
Saludos