Comunidad de diseño web y desarrollo en internet online

Modificado el Noticiero Flash + Xml con temporizador.

Citar            
MensajeEscrito el 14 May 2009 01:35 am
Hola, escribo este artículo para comentar una modificación que hice del Noticiero flash Xml de Julián Montoya, gracias a la ayuda de Solisarg en el Foro "Flex, Actionscript 3 y AIR"

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

Por saukob

9 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2009 02:48 pm
muy buena modificcion, muchachos me podria explicar como podria modificarlo para q haga una transicion de desvanecimiento entre fotos?

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

msie8
Citar            
MensajeEscrito el 08 Nov 2009 07:41 am
Este codigo me salvo la carrera..... de verdad ke son lo maximo... muchas gracias por el conocimiento :lol:

Por devilmaycry

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jun 2010 09:27 pm
Hola tengo una duda sobre el script para cargar los nodos del XML. Realmente lo que busco es agregar mas nodos dentro del XML pero aun no encuentro como modificar el AS para este efecto. Es en esta seccion donde me encuetro estancado:

//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

quisiera insertar aqui un nuevo nodo llamado "costo" a citar que ya se encuentra previamente establecido en el XML y como variable en el (indice) pero no se como llamarlo sin que en vez de su contenido se cargue el del nodo mensaje

agradezco infinitamente su ayuda

Por Lucatto87

0 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.