Comunidad de diseño web y desarrollo en internet online

Como puedo usar los datos de un loadvars para un cellrender?

Citar            
MensajeEscrito el 11 Jun 2009 02:58 pm
Holas, quiero hacer un cellrender que coja los datos de un archivo .txt:

El codigo del cellrender es así:

Código ActionScript :

//Llenamos de datos el DataGrid
mi_dg.addItem({Imagen:"imagenes/aliens.jpg", Titulo:"Aliens: El Regreso", Director: "James Cameron", Nota: "9"});
mi_dg.addItem({Imagen:"imagenes/elbosque.jpg", Titulo:"El Bosque", Director: "M. Night Shyamalan", Nota: "2"});
mi_dg.addItem({Imagen:"imagenes/zatoichi.jpg", Titulo:"Zatoichi", Director: "Takeshi Kitano", Nota: "8"});

//Le ponemos un alto de celda igual a la imagen para que encajen bien
mi_dg.rowHeight = 75;
mi_dg.resizableColumns = false;
mi_dg.sortableColumns = false;

//Ponemos el ancho de las columnas
mi_dg.getColumnAt(0).width = 103;
mi_dg.getColumnAt(1).width = 120;
mi_dg.getColumnAt(2).width = 120;
mi_dg.getColumnAt(3).width = 57;



Esta, es la parte donde muestra el contenido del cellrender:

Código ActionScript :

mi_dg.addItem({Imagen:"imagenes/aliens.jpg", Titulo:"Aliens: El Regreso", Director: "James Cameron", Nota: "9"});
mi_dg.addItem({Imagen:"imagenes/elbosque.jpg", Titulo:"El Bosque", Director: "M. Night Shyamalan", Nota: "2"});
mi_dg.addItem({Imagen:"imagenes/zatoichi.jpg", Titulo:"Zatoichi", Director: "Takeshi Kitano", Nota: "8"});


pues me gustaria que este texto se encontrara dentro de un archivo de texto llamado "contenido.txt", y hacer que el codigo quedase algo como esto:

Código ActionScript :

function arreglarTexto(texto_str:String):String {
   texto_str = unescape(texto_str);
   return texto_str.substr(0, texto_str.length-24);
}

var contenido_lv:LoadVars = new LoadVars();

contenido_lv.onLoad = function(exito) {
   if (exito) {
      
AQUI ES DONDE NO SE QUE SE HA DE PONER PARA QUE COJA EL CONTENIDO DE EL ARCHIVO "CONTENIDO.TXT" COMO VARIABLES.
   } else {
      
      mensaje_txt.text = "Error !!!";
   }
};
contenido_lv.load("contenido.txt");
stop();

//Le ponemos un alto de celda igual a la imagen para que encajen bien
mi_dg.rowHeight = 75;
mi_dg.resizableColumns = false;
mi_dg.sortableColumns = false;

//Ponemos el ancho de las columnas
mi_dg.getColumnAt(0).width = 103;
mi_dg.getColumnAt(1).width = 120;
mi_dg.getColumnAt(2).width = 120;
mi_dg.getColumnAt(3).width = 57;


El problema es que no se que he de poner dentro del loadvars para que el texto del archivo "contenidos.txt" me lo coja como variables.

Alguien me puede decir como se hace?

Gracias.

Por -cibernetik-

72 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Jun 2009 03:52 pm
Si miras los objetos que necesita el renderer son algo así:

{Imagen:"imagenes/zatoichi.jpg", Titulo:"Zatoichi", Director: "Takeshi Kitano", Nota: "8"}

Suponiendo que el archivo txt tuviera una salida así

imagen0=xxxxx&titulo0=xxxxxx&director0=xxxxx&nota0=xxxxx&imagen1=xxxxx&titulo1=xxxxxx&director1=xxxxx&nota1=xxxxx& ....... &cantidad=8

en el onLoad usarías un loop así

Código ActionScript :

var pelis = new Array()
for(var i=0; i<this.cantidad; i++) {
     pelis.push({Imagen:this["imagen"+i], Titulo:this["titulo"+i], Director: this["director"+i], Nota: this["nota"+i]})
}
rellenaGrid(pelis)


En la función rellenaGrid pones todo el rellenado del datagrid, como argumento recibes el array que necesitas para el cellrenderer

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 07:30 pm
Lo siento, no entiendo mucho sobre esto, he provado así, pero no funciona:

En flash:

Código ActionScript :

var contenido_lv:LoadVars = new LoadVars();
contenido_lv.onLoad = function(exito) {
   if (exito) { 
   
var pelis = new Array()
for(var i=0; i<this.cantidad; i++) {
pelis.push ({Imagen:this["imagen"+i], Titulo:this["titulo"+i], Director:this["director"+i], Nota:this["nota"+i]})
mi_dg.addItem(pelis);

   }
 
} else {              
mensaje_txt.text = "Error !!!";    
} 
}; 
contenido_lv.load("contenido.txt"); 


//Le ponemos un alto de celda igual a la imagen para que encajen bien
mi_dg.rowHeight = 75;
mi_dg.resizableColumns = false;
mi_dg.sortableColumns = false;

//Ponemos el ancho de las columnas
mi_dg.getColumnAt(0).width = 103;
mi_dg.getColumnAt(1).width = 120;
mi_dg.getColumnAt(2).width = 120;
mi_dg.getColumnAt(3).width = 57;


En el archivo .txt:

Código :

imagen0="xxxxx"&titulo0=xxxxxx&director0=xxxxx&nota0=xxxxx&imagen1=xxxxx&titulo1="xxxxxx"&director1=xxxxx&nota1=xxxxx&cantidad=1


También he provado de canviar el "pelis.push" por "var pelis: String = ' EL CONTENIDO'", pero tampoco funciona.

Como lo tengo que poner?

Gracias.

Por -cibernetik-

72 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Jun 2009 07:48 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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