Foros del Web » Creando para Internet » Flash y Actionscript »

noticias xml

Estas en el tema de noticias xml en el foro de Flash y Actionscript en Foros del Web. hola buenas tengo un codigo para flash que coge datos de un xml para poner una imagen en un mc y texto en un campo ...
  #1 (permalink)  
Antiguo 10/09/2007, 07:40
 
Fecha de Ingreso: abril-2006
Mensajes: 147
Antigüedad: 18 años
Puntos: 1
noticias xml

hola buenas tengo un codigo para flash que coge datos de un xml para poner una imagen en un mc y texto en un campo de texto dinamico.

pero solo me coge una noticia, quiero que se vallan cambiando cada cierto tiempo. g

alguien puede ayudarme, muchas gracias, aqui esta el codigo:

//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 type='arial' color='#006633' size='20'><b>"+titulo+"</b></font></p>";
_root.mensaje_txt.htmlText += "<p><font type='arial' size='13'><b>"+mensaje+"</b></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);
}
//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);
};

muchas gracias
  #2 (permalink)  
Antiguo 11/09/2007, 01:49
 
Fecha de Ingreso: abril-2006
Mensajes: 147
Antigüedad: 18 años
Puntos: 1
Re: noticias xml

nadie me puede indicar nada sobre esto??

gracias
  #3 (permalink)  
Antiguo 11/09/2007, 02:26
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: noticias xml

Esto debería servirte:
Código:
noticias_xml.onLoad = function() {
   var Id:Number = setInterval(this, "cargarDatos", tiempo, indice);
}
Esto debería llamar a la función cargarDatos cada tiempo milisegundos (ojo!! Si quieres que sean cinco segundos, hay queponer 5000).

Y también debes incrementar la variable indice cada vez que se ha llamado una noticia. Aquí debes ir con cuidado de no pasarte del número de noticias. Compáralo con noticias_xml.length.

Y si quieres desactivar el paso automático de noticias:
Código:
clearInterval(Id);
Saludos!
  #4 (permalink)  
Antiguo 11/09/2007, 02:48
 
Fecha de Ingreso: abril-2006
Mensajes: 147
Antigüedad: 18 años
Puntos: 1
Re: noticias xml

muchas gracias, pero eso lo tengo que sustituir por la linea que tengo de funcion CargarDatos(...).

o donde lo tengo que poner, con el noticias_xml.length tengo que meterlo en un if no?

gracias por tu respuestas
  #5 (permalink)  
Antiguo 11/09/2007, 03:00
 
Fecha de Ingreso: abril-2006
Mensajes: 147
Antigüedad: 18 años
Puntos: 1
Re: noticias xml

esto serviria???

if (noticias_xml.firstChild.childNodes[indice+1] != null) {
indice++;
if (noticias_xml.length==indice){
indice=1;
}
}

con un do-while tambien se podria hacer no?

aunque yo nose si existen en flash

gracias

Última edición por chuntin; 11/09/2007 a las 03:02 Razón: no habia terminado
  #6 (permalink)  
Antiguo 12/09/2007, 02:30
 
Fecha de Ingreso: abril-2006
Mensajes: 147
Antigüedad: 18 años
Puntos: 1
Re: noticias xml

hola buenas, al cargarlo me dice:

No hay ninguna propiedad que lleve por nombre 'length'.

alguien me puede3 ayudar, gracias
  #7 (permalink)  
Antiguo 13/09/2007, 00:35
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Re: noticias xml

Si miras en la ayuda de flash, obtendrás especificaciones sobre el uso de length en la clase XML. Como no conocía la estructura de tu archivo xml, tan sólo mencioné la propiedad length de xml. Sin embargo, en tu caso creo que sería:

noticias_xml.firstChild.childNodes.length;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:39.