Comunidad de diseño web y desarrollo en internet online

DESAFIO: Cargando XML

Citar            
MensajeEscrito el 26 Ago 2009 04:50 pm
Hola, estoy haciendo un flash con carga de datos externos.
este es el xml:

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<list>
  <description>La secuelas de las películas suelen ser desastres argumentales con la excusa de devolver a la pantalla al héroe de la versión original. Este es un listado de las secuelas que fueron excepción y que consideramos mejores que las originales. </description>
  <id type="integer">7</id>
  <image-file-name>spider-man-2_l.jpg</image-file-name>
  <permalink>segundas-partes-a-veces-son-mejores</permalink>
  <title>Segundas partes a veces son mejores</title>
  <items type="array">
    <item>
      <id type="integer">62</id>
      <image-file-name>godfather_21.jpg</image-file-name>
      <link>http://www.elpadrino.com</link>
      <points type="integer">1</points>
      <text>La saga de El padrino de Francis Ford Coppola en su mejor versión: Al Pacino y Robert de Niro estan impecables</text>
      <title>El Padrino 2</title>
      <video></video>
    </item>
    <item>
      <id type="integer">63</id>
      <image-file-name>t2.jpg</image-file-name>
      <link>http://www.terminator.com</link>
      <points type="integer">1</points>
      <text>Los efectos especiales con CGI nos dejaron boquiabiertos con esta segunda parte del terminator. Casi la ultima buena de Schwartzeneger</text>
      <title>Terminator 2</title>
      <video></video>
    </item>
   </items>
</list>


Todo funciona cuando mi flash usa este codigo:

Código ActionScript :

var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true;
opcionesXML.onLoad = function (sucess:Boolean) {
   if (sucess) {
      texto.text = opcionesXML.firstChild.childNodes[5].firstChild.childNodes[2].firstChild.nodeValue;
   } else {trace("Error al Leer archivo XML");}}
   opcionesXML.load("test.xml");


Pero no logro que funcione cuando tengo que usar este codigo:

Código ActionScript :

var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true;
opcionesXML.onLoad = function (sucess:Boolean) {
   if (sucess) {
      var opciones:Array = this.firstChild.childNodes;
      for(i = 0; i < opciones.length; i++) {
         todos.attachMovie("mcBoton","boton"+i,todos.getNextHighestDepth());
         todos["boton"+i]._x = -16;
         todos["boton"+i]._y = -8 + (i * 22);
         todos["boton"+i].texto = opciones[i].childNodes[1].firstChild;
         todos["boton"+i].linkurl = opciones[i].childNodes[1].firstChild;
         todos["boton"+i].img =opciones[i].childNodes[2].firstChild;
         todos["boton"+i].tit =opciones[i].childNodes[3].firstChild;
         todos["boton"+i].desc =opciones[i].childNodes[4].firstChild;
         todos["boton"+i].puntuacion =opciones[i].childNodes[5].firstChild;
            todos["boton"+i].onRollOver = function () {
            imagenes.loadMovie(this.img);
            this.gotoAndPlay("on")
            texto= this.desc
            tit= this.tit
            estrellas.gotoAndStop(this.puntuacion);}   
            
         todos["boton"+i].onRollOut = function () {
            this.gotoAndPlay("off");}
         todos["boton"+i].onRelease = function () {
            getURL(this.linkurl, "_blank");}      
}
   } else {
      trace("Error al Leer archivo XML");
}
}
opcionesXML.load("contenido.xml");


Todo un desafío...me estoy volviendo loco para solucionarlo.
Alguna idea?

Gracias.

Por nezu

10 de clabLevel



 

Argentina

chrome
Citar            
MensajeEscrito el 26 Ago 2009 04:57 pm
poq lo tienes que hacer de otra manera si con aka primera si te funcionaa??

Por carych

37 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Ago 2009 05:06 pm
Si te fijas el segundo AS tiene un attachmovie y es todo dinámico.
El que funciona es solo un AS simple que trae información del xml y ya.

;) saludos.

Por nezu

10 de clabLevel



 

Argentina

chrome
Citar            
MensajeEscrito el 26 Ago 2009 05:12 pm
ok dinamiko te refieres a ke traera la informacion de una base de datos??

Por carych

37 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Ago 2009 05:15 pm
si te refieres a esto lo mas conveniente seria converitr una consulta aun archivo xml y cargarla en moviclpis de flash. si masoemnos eso e slo que andas buscando dime y te posto algunos ejemplos

Por carych

37 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Ago 2009 05:20 pm
Si, el AS está funcionando, pero no logro hacer que funcione con este xml...lo hice funcionar
con otros, pero no puedo hacer que tome los nodos de este xml que puse.

El AS dinámico crea un mc por cada nodo y te lo muestra, ademas contiene un linkeo
y demás cosas que le fui seteando. Sólo que al pasar a un xml de mas de una raiz...
no me funciona.

:D

Por nezu

10 de clabLevel



 

Argentina

chrome
Citar            
MensajeEscrito el 26 Ago 2009 05:36 pm
ok te mostrare algo en lo que yo estoy trabajando. ojala te sirva

Yo creo la consulta en php de una base de datos de mysql y la convierto a xml este es el xml que me arroja

Código XML :

  <?xml version="1.0" ?> 
- <products>
  <item>1</item> 
  <item>prueba</item> 
  <item>paseo florida</item> 
  <item>2</item> 
  <item>test</item> 
  <item>test</item> 
  <item>test</item> 
  <item>323</item> 
  <item>333</item> 
  <item /> 
  <item>3</item> 
  <item>test</item> 
  <item>maria michelena</item> 
  <item>1</item> 
  <item>test</item> 
  <item>test</item> 
  <item>test</item> 
  <item>test</item> 
  <item>test</item> 
  <item /> 
  <item>4</item> 
  <item>nose</item> 
  <item>laureles</item> 
  <item>0</item> 
  <item>21365</item> 
  <item>59985</item> 
  <item>2454562</item> 
  <item>234212</item> 
  <item>216565</item> 
  <item /> 
  </products>


ok ya teniendo este xml yo lo cargo a flash de la siguiente manera esto yo lo meto en un data grid por medio de un dataset

y este masoemenso es el codigo que uso


Código ActionScript :

//Importamos las clases para el Iterator y los Estilos
import mx.data.components.datasetclasses.DataSetIterator
import mx.styles.CSSStyleDeclaration

//Estilo de la cabecera del grid
var headerStyles = new CSSStyleDeclaration();
headerStyles.setStyle("textAlign", "center");
procesos_grid.setStyle("headerStyle", headerStyles);
procesos_grid.setStyle("themeColor", "haloBlue");

//Declaramos variables

var miXML:XML = new XML();
var datosProcesos:Array = new Array();

/***************************** EMPEZAMOS *********************************/

//Cargamos el XML
miXML.ignoreWhite = true;
miXML.onLoad = function(success){
   //Cargamos y llenamos el array
   if (success){
      for (i=0; i<miXML.firstChild.childNodes.length; i+=10){
         datosProcesos.addItem({Clave: miXML.firstChild.childNodes[i].firstChild,
                             Nombre: (miXML.firstChild.childNodes[i+1].firstChild),
                              Direccion: (miXML.firstChild.childNodes[i+2].firstChild),
                              IdLocalidad: miXML.firstChild.childNodes[i+3].firstChild,
                              CodPostal: (miXML.firstChild.childNodes[i+4].firstChild),
                             AptPostal: (miXML.firstChild.childNodes[i+5].firstChild),
                              Conmutador: (miXML.firstChild.childNodes[i+6].firstChild),
                           Fax: (miXML.firstChild.childNodes[i+7].firstChild),
                           Telefono: (miXML.firstChild.childNodes[i+8].firstChild),
                              Multicanal: (miXML.firstChild.childNodes[i+9].firstChild)
                              
                           });
      }
      //Asignamos al DataSet y al DataGrid
      datos.items = datosProcesos;
      
      procesos_grid.dataProvider = datos.dataProvider;
      
      //Propiedades del DataGrid
      //procesos_grid.resizableColumns = true;
      procesos_grid.getColumnAt(0).width = 35;
      procesos_grid.getColumnAt(1).width = 35;
      procesos_grid.getColumnAt(2).width = 35;
      procesos_grid.getColumnAt(3).width = 50;
      procesos_grid.getColumnAt(4).width = 50;
      procesos_grid.getColumnAt(5).width = 65;
      procesos_grid.getColumnAt(6).width = 65;
      procesos_grid.getColumnAt(7).width = 50;
      procesos_grid.getColumnAt(8).width = 70;
      procesos_grid.getColumnAt(9).width = 50;
      procesos_grid.getColumnAt(10).width =50;
      procesos_grid.getColumnAt(11).width =50;
      procesos_grid.getColumnAt(12).width = 50;
      
      //procesos_grid.getColumnAt(12).setStyle("textAlign", "left");
      //procesos_grid.getColumnAt(13).setStyle("textAlign", "right");
      ////procesos_grid.getColumnAt(14).setStyle("textAlign", "left");
      //procesos_grid.getColumnAt(3).setStyle("textAlign", "right");
      
   }
}
miXML.load("http://localhost/xmlCentrostrabajos.php");



espero que te sirva si tienes alguna duda pos me dices y en lo que te pueda ayudar con gusto

Por carych

37 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Ago 2009 06:33 pm
Hey! gracias. Ahora lo reviso. Pero se me va demasiado de lo que estaba
haciendo y que ya me funcionaba...solo que al usar un xml distinto dejo
de funcionar...pero el flash ya me estaba funcionando con lo otro.

gracias!!!.;)

Por nezu

10 de clabLevel



 

Argentina

chrome

 

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