Comunidad de diseño web y desarrollo en internet online

como creo array si no existe

Citar            
MensajeEscrito el 16 Ene 2009 08:08 pm
Hola, com ocreo un arraycon as si esta no existe?

es decir:
if numero = 1
var eval('array_'+numero) << digo.... algo asi
crearia array_1

para despues tomarla y empezar a meterle nuevoselementos
array_1.push(...);

o de queforma puedo, si tengo un xml, no se cuantos nodos, quizas unos 4 con opcion a quitar o agregar, ycadanodo con nodos child, entonces digameos que nodo1 length 5, nodo 2 length 8, etc
entonces cada nodo seriaun array nuevo :?

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Ene 2009 08:18 pm

Código ActionScript :

mi_array:Array = new Array();

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 16 Ene 2009 09:05 pm

Código ActionScript :

for (i=0; i<5; i++)
{
   var nuevoarray = eval('array_'+i);
   nuevoarray = new Array();
   var rand:Number = random(20)+1;
   
   for (var h=0; h<rand;h++)
   nuevoarray.push(h);
   
   trace ('el array '+i+' tiene '+nuevoarray.length+' elementos: '+nuevoarray.join());
}

algo asi, GraXs!

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Ene 2009 09:27 pm
A ver una pregunta, entonces de aqui se esta creando un array multidimensional, no?,

Código ActionScript :

stop();
var general:Array = new Array();
var totalArrays: Number = random(6)+1;
for (i=0; i<totalArrays; i++)
{
   var nuevoarray = 'array_'+i;
   general[i] = nuevoarray;
   trace (nuevoarray+' fueagregado a general')
   nuevoarray = new Array();
   var rand:Number = random(20)+1;
   
   for (var h=0; h<rand;h++)
   nuevoarray.push(h);
   
   trace ('el array '+i+' tiene '+nuevoarray.length+' elementos: '+nuevoarray.join());
   
   if (i==totalArrays-1)
   trace ('Hay un total de '+i+' arrays en general: '+general.join());
   
}


trace ('general.length='+general.length+', QUERY X de array general: '+general[0][0]);

for (var h in general)
trace ('general.length='+general.length+', QUERY '+h+' de array general: '+general[h][random(eval(general[h].length))]);


los dos ultimos tracemne marcan undefined, como consulto algnindice de estos arrays?

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Ene 2009 11:14 pm
No estoy muy seguro pero creo que tienes que insertar lo del 2do array dentro de general

algo como

Código :

general[i,h]=h;


no se si se pueda ver informacion de un array que esta dentro de otro array :S

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 17 Ene 2009 05:52 pm

nasho escribió:

No estoy muy seguro pero creo que tienes que insertar lo del 2do array dentro de general

algo como

Código :

general[i,h]=h;


no se si se pueda ver informacion de un array que esta dentro de otro array :S


Si tienes:

Código ActionScript :

var matriz1:Array = ["Hola","Pepito"]
var matriz2:Array = new Array();
matriz2.push(matriz1)

y quieres acceder a Pepito dentro de matriz2, tendrias que hacer:

Código ActionScript :

trace(matriz2[0][1]);

Por esedeerre

132 de clabLevel



 

MadRid

opera
Citar            
MensajeEscrito el 27 Ene 2009 07:15 pm
no puedo! sigo con la gran duda, no se como crear un array nuevo

Miren, leo un xml, tiene 3 nodos, cada nodo tiene N noditos :), bueno nodos hijos, jeje

este xml sedebera incrementar despues asi es que en base a los nodos quitados o agregados es la cantidad de nuevos arrays creados

Código ActionScript :

var tema:String = new String();
var rutaFoto:String = './pics/';
var numFotos:Number = (undefined) ? 0 : misFotos.length; 
var intervalo:Number;

var xmlObj:XML = new XML();
xmlObj.ignoreWhite = true;

var misFotos:Array = new Array();
var headerProds:Array = new Array(); // Clases de productos
// var array product_N --> se crea en bucle, trae un identificador en el xml

// PASO 3: guarda productos en arrays nuevos
function arrayXML (param, matriz:Array, paramTema,paramRuta) // (st, dtxt )
{
   var myxmlNode = param;
   trace ('ESTE PRODUCTO tiene ' + myxmlNode.length + ' nodos')
   
   for (p=0; p<myxmlNode.length; p++)
   {
   var prod_node = myxmlNode[p].attributes.img;
   var prod_attribs:Object = new Object({prod_id:prod_node.attributes.id,
                              prod_img:prod_node.attributes.img
                              });
   /*
   matriz.push({id:myxmlNode[i].attributes.id, img:myxmlNode[i].attributes.img});
   }*/
   trace (matriz + ' -------------> prod ' + p + ': ' + prod_node);
   
   matriz[p] = prod_attribs;
   
   // ERROR!
   //
   //
   // ARRAYS NUEVOS CREADOS...   ¡¡¡¡¿¿¿¿COMO???!!!!
   /*var newMatriz = matriz;
   matriz = new Array();
   matriz.push(prod_attribs);*/
   }
   
   //
   //
   //
      
   tema = paramTema;
   ruta = paramRuta;
   trace ('>> function arrayXML (...) ============= ' + tema + ' (' + ruta + ')');
   trace ('MATRIZ CREADA: '+matriz);
   trace (matriz.join());
   /*for (var h in matriz)
   trace (matriz[h].id+', '+matriz[h].img);*/
}

// PASO 2: carga xml
function cargaXML():Void
{
// Para archivos txt externos NO codificados como Unicode, System.useCodepage, true. 
System.useCodepage = false; // xml tiene codificacion utf-8 (mejor para internacional)
trace("cargaXML intervalo: " + intervalo + " xml encoding file (utf-8): " + System.useCodepage);
   // Carga swf completa!, a cargar xml...
   xmlObj.onLoad = function(success) {
   if (!success)
   {
      trace("error");
      return;
   }
   else
   {
   // headers : CLASE DE PRODUCTOS
   var hdr_totalProds:Number = this.firstChild.childNodes.length;
   for (var h=0; h<hdr_totalProds; h++)
   {
   // <arbol id="Galeria VA - Joyeria" ruta="./joyeria/" reg="Gabriela N" iLogo="N">
   var hdr_node = this.firstChild.childNodes[h];
   var hdr_attribs:Object = new Object({id:hdr_node.attributes.id,
                              ruta:hdr_node.attributes.ruta,
                              reg:hdr_node.attributes.reg, 
                              logo:hdr_node.attributes.iLogo,
                              prod:'product_'+h
                              });
   trace('XML: ' + hdr_totalProds + ' nodos ======================= tema/'+this.firstChild.childNodes[h].nodeName+': ' + h);
   
   for (var hz in  hdr_attribs)
   trace ('\t' + hz + ': ' + hdr_attribs[hz]);
   
   headerProds.push(hdr_attribs); // creando array de CLASES DE PRODUCTOS
   
   // product_N : A METER PRODUCTOS EN C/CLASE (registro creado en hdr_attribs)
   trace ('PRDOCUTOS, guardados en --> ' + headerProds[h].prod);
    arrayXML(this.firstChild.childNodes[h].childNodes, headerProds[h].prod, headerProds[h].id, headerProds[h].ruta);
   
   } // end for hz
   
   // ...luego
   clearInterval(intervalo);
   // play();
   }
   };
   
   // Load XML en xmlObj object.
   if (encoding == undefined) { encoding = "xml_iso_8859_1"; }
   xmlObj.load('vaxpo.xml'); //(encoding + ".xml");
}


// PASO 1: precarga swf 
var preloader:MovieClip = _root.attachMovie('preloader', 'preloader_mc', 5000);
var inicia:Number = 0;
// trace ('HOLA '+preloader);
this.onEnterFrame = function() {
   preloader._x = Stage.width/2;
   preloader._y = Stage.height/2;
   if (this.getBytesLoaded() == this.getBytesTotal()) {
      inicia++;
      // trace (inicia);
      if (inicia>30)
      {
      // trace ('ADIOS '+preloader);
      preloader.removeMovieClip();
      delete this.onEnterFrame;
      // SWF cargado, inicia carga de XML
      intervalo = setInterval(this, "cargaXML", 1000);
      }
   }
};


el xml algo asi

Código :

<total id="Galeria VA">
   <arbol id="Galeria VA - Joyeria" ruta="./joyeria/" reg="Gaby" iLogo="gabsanch">
<item id="Joyería" img="IMG_5443.jpg" />
<item id="Joyería" img="IMG_5450.jpg" />
<item id="Joyería" img="IMG_5471.jpg" />
<item id="Joyería" img="IMG_5488.jpg" />
<item id="Joyería" img="IMG_5499.jpg" />
<item id="Joyería" img="IMG_5503.jpg" />
<item id="Joyería" img="IMG_5513.jpg" />
<item id="Joyería" img="IMG_5526.jpg" />
<item id="Joyería" img="IMG_5526a.jpg" />
<item id="Joyería" img="IMG_5562.jpg" />
</arbol>
<arbol id="Galeria VA - Licor de Café" ruta="./cafe/" reg="Buenlicor" iLogo="licdcafe">
<item id="Licor de café" img="IMG_6775.jpg" />
<item id="Licor de café" img="IMG_6818.jpg" />
<item id="Licor de café" img="IMG_6828.jpg" />
<item id="Licor de café" img="IMG_6861.jpg" />
<item id="Licor de café" img="IMG_6914.jpg" />
</arbol>
<arbol id="Galeria VA - Dulcería" ruta="./dulces/" reg="Algo" iLogo="confiter">
<item id="Palanquetas" img="IMG_8768.jpg" />
<item id="Palanquetas" img="IMG_8820.jpg" />
<item id="Palanquetas" img="IMG_8852.jpg" />
<item id="Palanquetas" img="IMG_8877.jpg" />
<item id="Palanquetas" img="IMG_8882.jpg" />
<item id="Palanquetas" img="IMG_8894.jpg" />
<item id="Palanquetas" img="IMG_8928.jpg" />
<item id="Palanquetas" img="IMG_8936.jpg" />
<item id="Palanquetas" img="IMG_8937.jpg" />
<item id="Palanquetas" img="IMG_8994.jpg" />
</arbol>
</total>


Entonces.... estoy metiendo en un array inicialmente declarado
var headerProds:Array = new Array();
el nodo 0, 1 y 2

pero cada nodo de estos requiere un array nuevo con todos sus elementeos

A lo mejor me estoy complicando, me peuden dar soluciones por favzzz

Salu2!

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ene 2009 10:24 pm
Uf! ya le halle, en la funcion arrayXML que es donde meto la lista de productos, creo un objeto que meto a un array multidimensional que estableci previamente, si, si debo crear el nuevo array desde un principio. Bueno, selosdejo completo para quien les pueda servir

Salu2!

Código ActionScript :

var tema:String = new String();
var rutaFoto:String = './pics/';
var numFotos:Number = (undefined) ? 0 : misFotos.length; 
var intervalo:Number;

var xmlObj:XML = new XML();
xmlObj.ignoreWhite = true;

var misFotos:Array = new Array();
var headerProds:Array = new Array(); // Clases de productos
var listProds:Array = new Array(); // Lista de productos
// var array product_N --> se crea en bucle, trae un identificador en el xml

// PASO 3: guarda productos en arrays nuevos
function arrayXML (param, matriz:String, paramTema,paramRuta) // (st, dtxt )
{
   var insert_Prods_in_array:Array = new Array();
   var myxmlNode = param;
   trace ('ESTE PRODUCTO tiene ' + myxmlNode.length + ' nodos')
   
   for (p=0; p<myxmlNode.length; p++)
   {
   var prod_attribs:Object = new Object({prod_id:myxmlNode[p].attributes.id,
                              prod_img:myxmlNode[p].attributes.img
                              });

   insert_Prods_in_array.push(prod_attribs); // inserto obj en array temporal, dentro de for
   }
   
   listProds.push(insert_Prods_in_array); // inserto array temporal dentro de array multidimensional, fuera de for

   
   tema = paramTema;
   ruta = paramRuta;
   trace ('>>>> function arrayXML (...) -----> ' + tema + ' (' + ruta + ')');
   trace ('MATRIZ CREADA: ');
   
   for (var lp in listProds[listProds.length-1])
   trace (listProds[listProds.length-1][lp].prod_id + ', ' + listProds[listProds.length-1][lp].prod_img);
}

// PASO 2: carga xml
function cargaXML():Void
{
// Para archivos txt externos NO codificados como Unicode, System.useCodepage, true. 
System.useCodepage = false; // xml tiene codificacion utf-8 (mejor para internacional)
trace("cargaXML intervalo: " + intervalo + " xml encoding file (utf-8): " + System.useCodepage);
   // Carga swf completa!, a cargar xml...
   xmlObj.onLoad = function(success) {
   if (!success)
   {
      trace("error");
      return;
   }
   else
   {
   // headers : CLASE DE PRODUCTOS
   var hdr_totalProds:Number = this.firstChild.childNodes.length;
   for (var h=0; h<hdr_totalProds; h++)
   {
   // <arbol id="Galeria VA - Joyeria" ruta="./joyeria/" reg="Gabriela N" iLogo="N">
   var hdr_node = this.firstChild.childNodes[h];
   var hdr_attribs:Object = new Object({id:hdr_node.attributes.id,
                              ruta:hdr_node.attributes.ruta,
                              reg:hdr_node.attributes.reg, 
                              logo:hdr_node.attributes.iLogo,
                              prod:'product_'+h
                              });
   trace('XML: ' + hdr_totalProds + ' nodos ============================== tema/'+this.firstChild.childNodes[h].nodeName+': ' + h);
   
   for (var hz in  hdr_attribs)
   trace ('\t' + hz + ': ' + hdr_attribs[hz]);
   
   headerProds.push(hdr_attribs); // creando array de CLASES DE PRODUCTOS
   
   // product_N : A METER PRODUCTOS EN C/CLASE (registro creado en hdr_attribs)
   trace ('PRDOCUTOS, guardados en --> ' + headerProds[h].prod);
    arrayXML(this.firstChild.childNodes[h].childNodes, headerProds[h].prod, headerProds[h].id, headerProds[h].ruta);
   
   } // end for hz
   
   // ...luego
   clearInterval(intervalo);
   // play();
   }
   };
   
   // Load XML en xmlObj object.
   if (encoding == undefined) { encoding = "xml_iso_8859_1"; }
   xmlObj.load('vaxpo.xml'); //(encoding + ".xml");
}


// PASO 1: precarga swf 
var preloader:MovieClip = _root.attachMovie('preloader', 'preloader_mc', 5000);
var inicia:Number = 0;
// trace ('HOLA '+preloader);
this.onEnterFrame = function() {
   preloader._x = Stage.width/2;
   preloader._y = Stage.height/2;
   if (this.getBytesLoaded() == this.getBytesTotal()) {
      inicia++;
      // trace (inicia);
      if (inicia>30)
      {
      // trace ('ADIOS '+preloader);
      preloader.removeMovieClip();
      delete this.onEnterFrame;
      // SWF cargado, inicia carga de XML
      intervalo = setInterval(this, "cargaXML", 1000);
      }
   }
};
//
stop();

Por comicSans

Claber

151 de clabLevel



 

firefox

 

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