Comunidad de diseño web y desarrollo en internet online

¿Que fallo hay en este codigo?

Citar            
MensajeEscrito el 03 Jul 2007 03:19 pm
este codigo es de un noticiero y lo que hace es cojer los contenidos de las noticoas de un XML lo que he hecho yo es ponerle condiciones "if" para según cada idioma si la variable es 1 que coja los contenidos del XML en castellano si la variables es 2 que coja los contenidos del XML en ingles.
mirar el codigo y decirme que falla por que no parece nada:
GRACIAS DE ANTEMANO

Código :

_global.idioma;
// esta es la condicion
if (idioma == 1) {

//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
      mensaje_txt.htmlText = "";
      mensaje_txt.htmlText += "<p align='center'><font color='#006633' size='12'><b>" + titulo + "</b></font></p>";
      mensaje_txt.htmlText += "<p><font size='10'>" + mensaje + "</font>";
      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
      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);         
   }
   
   }
   
// la siguiente condicion para el ingles
   else if (idioma == 2) {
      //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
      mensaje_txt.htmlText = "";
      mensaje_txt.htmlText += "<p align='center'><font color='#006633' size='12'><b>" + titulo + "</b></font></p>";
      mensaje_txt.htmlText += "<p><font size='10'>" + mensaje + "</font>";
      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
      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("noticiasing.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);         
   }
   }

Por Chelab

37 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Jul 2007 07:31 pm
Buff! Mucho código. Prueba que entra dentro de los if's; es decir, que idioma toma los valores 1 o 2 correctamente, a ver si va a ser por eso.

Saludos!

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox
Citar            
MensajeEscrito el 04 Jul 2007 01:55 am

dmvalverde escribió:

Buff! Mucho código.
No solo eso, hay más comentarios que código... Lo recomendable es comentar sólo lo que no es obvio, no cada línea; es inútil, incómodo para el que revisa el código y consume tiempo escribirlo.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2007 11:20 am
a ver me explico dentro de los "if" está el mismo codigo lo que pasa que cambia una cosa que es esto:

//en el primer "if"
if (idioma == 1) {
// codigo
noticias_xml.load("noticiasesp.xml");
}
//en el segundo "if"
if (idioma == 1) {
// codigo
noticias_xml.load("noticiasing.xml");
}

para cada idioma tengo un archivo XML distinto.

Por Chelab

37 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 04 Jul 2007 02:05 pm
Poné un trace para ver si funcionan los ifs.

Y un consejo, en lugar de usar tantos ifs, probá usar un switch.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2007 09:00 pm
Y no repitas codigo.
Dentro de cada if tenes lo mismo o casi lo mismo.
Cuando en realidad podes poner la funcion una sola vez y simplemente con el if decis cual XML cargar.

Saludos

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jul 2007 09:07 am
Muchimas gracias funciona, que tonto e sido como no me he dado cuenta dios yo ponia todo el codigo de nuevo, muchisimas gracias por la ayuda joer que bien

Por Chelab

37 de clabLevel



Genero:Masculino  

msie

 

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