Comunidad de diseño web y desarrollo en internet online

Leer variables de archivos con un FOR

Citar            
MensajeEscrito el 17 Jun 2009 07:21 am
Hola de nuevo gentes!!! Tengo una duda que me está quebrando la cabeza, más bien, no sé donde estoy fallando, pero no funciona y por lógica debería de funcionar. El código es el siguiente:

Código ActionScript :

// Creo un contador
var contar:Number=0;
// Cargo dicho archivo. Este archivo es un archivo PHP que lee los archivos TXT de un directorio. Éstos tienen unas variables que el PHP las pasa en plan, archivo 1: &I1=****&T2=******&; Archivo 2: &I2=******&T2=*****&; Archivo 3: Etc...
var productos:LoadVars=new LoadVars();
productos.load("productos.php");
productos.onLoad=function(si){if(si){
// Cuento el número de archivos existentes
   var U:Number=productos.num;
// Creo un Movie Clip para representar los datos en una tabla ordenada
   var aux:MovieClip;
// Carga de datos por individual
   for(var i:Number=0;i<U;i++){
// Como i me cuenta desde 0, sigo la fila del contador que me empieza en 1
      contar++;
      var R:Number=Math.floor(i/3);
// Creo el MovieClip desde otro ya existente
      aux=mn.uno.duplicateMovieClip("uno"+i,i);
// Divido en 3 columnas la información, ordenadas de izquierda a derecha y de arriba a abajo
      aux._x=(i*130)-(3*130*R);
      aux._y=160*R
// Cargo los datos en su correspondiente lugar
      aux.T.text=productos._root["T"+contar];
      aux.I.text=productos._root["I"+contar];
      aux.P.text=productos._root["P"+contar];
   };
};};


El código a pelo sería el siguiente:

Código ActionScript :

var contar:Number=0;
var productos:LoadVars=new LoadVars();
productos.load("productos.php");
productos.onLoad=function(si){if(si){
   var U:Number=productos.num;
   var aux:MovieClip;
   for(var i:Number=0;i<U;i++){
      contar++;
      var R:Number=Math.floor(i/3);
      aux=mn.uno.duplicateMovieClip("uno"+i,i);
      aux._x=(i*130)-(3*130*R);
      aux._y=160*R
      aux.T.text=productos._root["T"+contar];
      aux.I.text=productos._root["I"+contar];
      aux.P.text=productos._root["P"+contar];
   };
};};


La verdad, no entiendo donde fallo, el PHP da como resultado lo deseado, por tanto sé que el PHP no falla. Que liada, a ver si me podéis ayudar, muchas gracias gentes ;).

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Jun 2009 07:27 am
Buah!!! No quiero hacer Flood en el foro, pero es que sino tengo que borrar el POST, la cosa es que sé que falla al final, cuando voy a recopilar los datos, donde pone _root["T"+contar], lo que falla son los _root, sin embargo me valen para usarlo dentro de lo que son MovieClips, para mover X MovieClips a la vez y cosas así, me estoy comiendo la olla tela, porque si le pongo un valor ya determinado funciona a la perfección, es decir, si en vez de poner _root["T"+contar] pongo T2, funciona a la perfección. Que comedura de olla xDDD, a ver si me podéis ayudar xD

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Jun 2009 08:46 am
Bueno, la siguiente instrucción:

Código ActionScript :

aux.T.text=productos._root["T"+contar]; 


Es errónea, no puedes acceder a _root, dentro del objeto loadVars. Explica cuáles son los datos que te devuelve el php para poder comprender que datos deseas poner en los campos de textos dinámicos que están dentro de los MovieClips que duplicas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Jun 2009 10:53 am
Wenas elchininet, muchas gracias por responder tan rápido. Los datos serían 3 por cada grupo de celdas. Serían los siguientes datos los resultantes de una prueba con el PHP que cree:

Código :

&I1=mio&T1=tuyo&P1=suyo&&I2=otra&T2=mas&P2=para&&I3=Hola&T3=como&P3=adios&&num=3&


A partir de estos resultados se leerían todos los datos colocando celdas divididas en otras 3 celdas (MovieClip, cada MovieClip contiene 3 celdas por así decirlo), entonces el MovieClip leería sus datos correspondientes al número de MovieClip que es. El código PHP es el siguiente:

Código PHP :

<?php
$url="./prueba";
$contar=0;
$images2=glob("$url/{*}",GLOB_BRACE);
foreach($images2 as $v2){
$contar++;
include("$v2");
echo "&I$contar=$I&T$contar=$T&P$contar=$P&";
};
$cuenta=count(glob("$url/{*}",GLOB_BRACE));
echo "&num=$cuenta&"
?>


Espero que sirva de algo, muchas gracias por la respuesta, espero otra impacienteeee!!! :D

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Jun 2009 12:40 pm
Entonces debes hacer algo como esto:

Código ActionScript :

aux.T.text = this["T" + ( i + 1 )];


Utilizas "this" para referirte al objeto loadVars ya que estás dentro de la función de su onLoad y eliminas la variable "contar" que al fin de cuentas está de más.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Jun 2009 03:41 pm
Hostras men!!! Llevaba mil años buscando el motivo de mi lucha y por fin alguien me ayuda a encontrarla!! Eres mi nuevo ídolo xD. Mil gracias elchininet, que sepas que funcionó a la perfección, ya pude hacer las tablas perfectamente. Un saludo men ;).

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Jun 2009 04:03 pm
Me alegro que hayas solucionado el problema ;)

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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