Comunidad de diseño web y desarrollo en internet online

Sistema de Noticias dinámicas y xml

Citar            
MensajeEscrito el 12 Abr 2008 01:32 am
Hola, quiero implementar un sistema de noticias de manera dinámica. Los datos se toman de un xml que detallo más abajo.

//el XML

Código :

<rss version="2.0">
<noticia>
<titulo>Noticia1</titulo>
<link>http://*********.***1</link>
<epigrafe>Epigrafe de la noticia1...</epigrafe>
<texto>texto1</texto>
<foto>foto1.jpg</foto>
</noticia>

<noticia>
<titulo>Noticia2</titulo>
<link>http://*********.***2</link>
<epigrafe>Epigrafe de la noticia2...</epigrafe>
<texto>texto2</texto>
<foto>foto2.jpg</foto>
</noticia>

<noticia>
<titulo>Noticia3</titulo>
<link>http://*********.***3</link>
<epigrafe>Epigrafe de la noticia3...</epigrafe>
<texto>texto3</texto>
<foto>foto3.jpg</foto>
</noticia>
</rss>

...son 12 de estos fragmentos (12 noticias)...(es a discreción)...


//SCRIPT

Código :

miXML = new XML();
miXML.ignoreWhite = true;
miXML.onLoad = function (leido){
   if (leido){
      i = 0;
      testXML();
   }
   else{
      trace("No se puede leer el XML");
   }
}
miXML.load("rssxml.xml");
function testXML (){
//crear mc titulos (dentro se crearan dinamicamente los mcs para cada noticia)
createEmptyMovieClip("titulos", getNextHighestDepth())
//crear campos de texto dinamico (y dentro de estos se crearan los text fields)
maxNot = 12;
myformat = new TextFormat();
myformat.color = 0xffff00;
myformat.underline = true;

for(i=0; i<maxNot; i++){
   libro = miXML.firstChild.childNodes[i];
titulos.createEmptyMovieClip("titulos_mc"+i, titulos.getNextHighestDepth(), 40, i*30, 200, 20)   
titulos["titulos_mc"+i].createTextField("titulo"+i, titulos["titulos_mc"+i].getNextHighestDepth(), 40, i*30, 200, 20)
titulos["titulos_mc"+i]["titulo"+i].text = miXML.firstChild.childNodes[i].childNodes[0].firstChild;
titulos["titulos_mc"+i]["titulo"+i].setTextFormat(myformat);
titulos["titulos_mc"+i]["titulo"+i].background = true;
titulos["titulos_mc"+i]["titulo"+i].backgroundColor = 0x000033;

titulos["titulos_mc"+i].onPress = function(){
   //var epig = new Array();
   //var epig:Array = [["1","2","3"],["vcbcvb","retert","fdgfg"]];
   epig = miXML.firstChild.childNodes[i].childNodes[2].firstChild;
   epigrafe_txt = epig;
   trace(epig)
}
}   
testXML();
}


Hasta ahora pude crear los mcs (las noticias), y dentro de cada mc se crea un textField. Luego implemente una función onPress, la idea es que al presionar sobre cada noticia, en el campo de texto dinámico que esta en el escenario ("epigrafe_txt") tome el epigrafe correspondiente a cada noticia no se si me explico, no se cual sea el problema, pero me muestra undefined en el campo de texto "epigrafe_txt". Gracias.

Por COOKERNATOR

43 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 13 Abr 2008 04:15 pm
Hola de nuevo, voy a pasar a explicar cual es el problema, por si no se entendió. El sistema de noticias que quiero implementar sería algo parecido a un lector de feeds rss, genero los títulos principales, estos son mc's (para luego poder usar la función onPress), y dentro de cada mc de cada noticia se crea el campo de texto correspondiente a cada una de ellas (el cual mostrará el texto de la noticia). Hasta ahí bien, eso fué logrado. El principal problema es que no pude terminar la función onPress, intenté de todo, puedo hacer que al presionar sobre cada una de las noticias se muestre un solo valor en el cuadro de texto "epigrafe_txt", pero obviamente eso resulta inutil. Lo que necesito es que se le asigne de manera dinámica a cada noticia el epígrafe correspondiente. En la función está tal cual yo creo debería funcionar, pero en lugar de mostrarme el valor correspondiente a cada epígrafe, el valor resulta ser undefined.
Si alguien está dispuesto a enfrentar este reto, lo propongo que pruebe el código en el flash y me cuente. El código esta listo para ser usado, excepto por el campo de texto dinámico "epigrafe_txt" que está en el _root del escenario, y obviamente crear el xml (pero ya tienen los datos). Desde ya muchas gracias.

Por COOKERNATOR

43 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 15 Abr 2008 03:54 pm
Hola a todos, voy a ser un poco mas explícito ya que veo que muchos han leído el post, pero es posible que no hayan comprendido mi propósito. La idea es crear un LECTOR RSS de feeds, algo parecido al "feedreader". Quiero que mi programa disponga de un visualizador con las últimas digamos 10 noticias, las cuales serán tomadas desde un xml. Este xml contendrá diversos datos como un epígrafe (algo como una introducción al título), directorio de por ejemplo fotos, mas texto, urls, lo que sea. Digamos que para que me entiendan, gráficamente este programa estaría constituido por dos sectores importantes a destacar (dos pantallas con scroll), que son los títulos por un lado, y algo que yo llamé "epígrafe" pero que lo pueden llamar como ustedes quieran, que es la ampliación de la noticia (de cada título). Hasta ahí creo que se entiende el propósito. En mi primer post ustedes podrán ver la estructura del xml, y más abajo el código que genera las 12 noticias tomadas del xml. Estructuralmente se crea un "todo" (el mc "contenedorTit") y dentro de éste se crea un array que crea los mc's para cada una de las noticias ("titulos+i"), fué necesario que cada noticia fuera constituida por un mc para poder realizar la función onPress sobre cada una , y dentro de cada una se crea un textField quien toma del xml la etiqueta de los títulos. Ahora bien, lo que no puedo lograr, o simplemente no se me ocurre , es lograr que haciendo click sobre una noticia en particular se llame un dato del xml, en este caso correspondiente al "epígrafe", y lo incorpore por ejemplo en un campo de texto, en este caso "epigrafe_txt". Mis intentos han fallado, simplemente no se como decirle a AS que seleccionando una noticia reconozca el id de ésta para asociarlo a otro dato particular de esa noticia como ser el "epigrafe", o podría ser una foto, o lo que sea. Si se fijan en el código, si en la parte que llama al xml para tomar el dato del epígrafe le cambian la variable "i" por un nro. específico (del 1 al 11 en nuestro caso), verán que no importa que noticia se presione, se llamará a ese valor en particular, no es la idea, pero al menos no dara error "undefined", caso contrario si lo hará. La idea basicamente es implementar algo parecido a un lector de feeds. Si creen que el código no es eficaz por favor díganme de qué manera podría resolverlo, o donde podría encontrar información relacionada a ésto. Por si las dudas les comento que sí he visto numerosos tutoriales al respecto pero ninguno habla específicamente sobre lo que yo quiero implementar, lo mío sería un detalle más específico. Muchas gracias por su cooperación.

Por COOKERNATOR

43 de clabLevel



Genero:Masculino  

msie7

 

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