Mensaje
Autor
Publicado: Sab Jul 07, 2007 2:27 pm
Citar
En C++: Código :
int t[3][3];
Sencillo. Claro. En cambio, en AS: Código :
var t:Array = new Array(); for (i=0; i<3; i++) { t[i] = new Array(); t[i][0] = 0; t[i][1] = 0; t[i][2] = 0; }
¿Es correcto? ¿No hay una forma menos engorrosa? Gracias.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Sab Jul 07, 2007 6:27 pm
Citar
Me auto-contesto: Es correcto. Es sucio, pero es correcto.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Sab Jul 07, 2007 6:39 pm
Citar
Multidimensional Array:Código :
var myArray:Array = new Array(); myArray = [[0],[0]];
Y asi puedes ir agregando mas elementos.
_________________
Carloz.Yanez
SWAT Team
clabLevel: 2374
Entrance to Hell
3 Tutoriales
31 Tips
Volver arriba
Publicado: Sab Jul 07, 2007 8:08 pm
Citar
Código :
var multiArray:Array = new Array(); multiArray = [["Bleend", 760, true], ["carloz.yanez", 115, true], ["Zguillez", 2698, true]]; trace(multiArray[0][0]);
_________________
MY : Blog | Facebook | Twitter | Pownce | Jaiku | Plurk | Last.fm | Flickr .
Zguillez
BOFH
clabLevel: 4113
BCN
3 Tutoriales
40 Tips
1 Ejemplos
Volver arriba
Publicado: Sab Jul 07, 2007 8:46 pm
Citar
Gracias a todos. Era eso.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Sab Jul 07, 2007 10:16 pm
Citar
Si t ya es un Array, no hace falta declarar t[i] como Array en cada una de las iteraciones del for. Igual, para hacerlo más fácil puede que te interese usar push:Código :
var miArray:Array = new Array (); for (var i = 0; i < 5; i++) { miArray.push (["algo" , i]); // No te olvides de los corchetes. }
Además el push impide que se compliquen las cosas si el Array ya tiene algunos elementos.
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Dom Jul 08, 2007 6:45 pm
Citar
es cierto lo q menciona HernanRivas, un array acepta otros elementos: un object, un number, un ARRAY, etc.
_________________
eldervaz
SWAT Team
clabLevel: 3258
Lima - Perú
11 Tutoriales
7 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 3:02 am
Citar
eldervaz escribió:
es cierto lo q menciona HernanRivas, un array acepta otros elementos: un object, un number, un ARRAY, etc.
Yo no dije eso , simplemente mostré una de las maneras de crear un Array multidimensional.
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 10:34 am
Citar
HernanRivas escribió:
Si
t ya es un Array, no hace falta declarar t como Array en cada una de las iteraciones del for.
Igual, para hacerlo más fácil puede que te interese usar push:
Código :
var miArray:Array = new Array (); for (var i = 0; i < 5; i++) { miArray.push (["algo" , i]); // No te olvides de los corchetes. }
Además el push impide que se compliquen las cosas si el Array ya tiene algunos elementos.
Mmmmm... Lo siento, pero no entiendo como trabaja un push . La ayuda flash no me ayuda. ( ) ¿Para que mas puede servir un push
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años. Ultima edición por Bleend el Lun Jul 09, 2007 11:14 am, editado 1 vez
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 11:01 am
Citar
Bleend escribió:
HernanRivas escribió:
Si
t ya es un Array, no hace falta declarar t
como Array en cada una de las iteraciones del for. Igual, para hacerlo más fácil puede que te interese usar push:Código :
var miArray:Array = new Array (); for (var i = 0; i < 5; i++) { miArray.push (["algo" , i]); // No te olvides de los corchetes. }
Además el push impide que se compliquen las cosas si el Array ya tiene algunos elementos.
Mmmmm...
Lo siento, pero no entiendo como trabaja un [i]push. La ayuda flash no me ayuda. (
) ¿Para que mas puede servir un
push
Lo que hace push() es añadir elementos a un array. Lo que te dice HernanRivas es que si añades como elemento del array otro array NO es necesario que este segundo array esté definido como tal.Código :
miArray.push(new Array("algo", i));
Simplemente utiliza los corchetes [..., ...]
_________________
MY : Blog | Facebook | Twitter | Pownce | Jaiku | Plurk | Last.fm | Flickr .
Zguillez
BOFH
clabLevel: 4113
BCN
3 Tutoriales
40 Tips
1 Ejemplos
Volver arriba
Publicado: Lun Jul 09, 2007 11:29 am
Citar
Zguillez escribió:
Lo que hace push() es añadir elementos a un array. Lo que te dice HernanRivas es que si añades como elemento del array otro array NO es necesario que este segundo array esté definido como tal.
¿Un array que no lo defines como array? Entonces, ¿como lo defines? Es decir, por mucho que tu digas que un coche es un avión, ¿este no seguirá siendo un coche? Y si intentas volar con él, te la pegas...
Zguillez escribió:
Simplemente utiliza los corchetes [..., ...]
Sí, ya lo hice, me funciona bien, gracias.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 12:41 pm
Citar
Bleend escribió:
¿Un array que no lo defines como array? Entonces, ¿como lo defines? Es decir, por mucho que tu digas que un coche es un avión, ¿este no seguirá siendo un coche? Y si intentas volar con él, te la pegas...
Vamos a ver, gañan... lo que quiero decir que es para crear un array multidireccional no has de crear una instancia de cada array que metas en el array principal:Código :
var array1:Array = new Array(); // var array2:Array = new Array(); array2 = [item11, item12, item13]; array1.push(array2); // var array3:Array = new Array(); array3 = [item21, item22, item23]; array1.push(array3);
ni siquiera introducirlos definidos como tipo Array con el operador new:Código :
var array1:Array = new Array(); array1.push(new Array([item11, item12, item13])); array1.push(new Array([item21, item22, item23]));
Solo mete los datos con los corchetes:Código :
var array1:Array = new Array(); array1.push([item11, item12, item13]); array1.push([item21, item22, item23]);
_________________
MY : Blog | Facebook | Twitter | Pownce | Jaiku | Plurk | Last.fm | Flickr .
Zguillez
BOFH
clabLevel: 4113
BCN
3 Tutoriales
40 Tips
1 Ejemplos
Volver arriba
Publicado: Lun Jul 09, 2007 1:49 pm
Citar
Zguillez escribió:
_____ Vale, si tu tienes: Array1 -> [ ] [ ] [ ] Array2 -> [ ] [ ] [ ] Y le metes un push al Array 1 con el Array 2: Código :
array1.push(array2);
O simplemente los valores [ ], como dices (eso esta claro):Código :
array1.push([item1, item2, item3]);
, ¿que te queda?A) [ ] [ ] [ ] [ ] [ ] B) [ ] [ ] [ ] _ _ [ ] _ _ [ ] C) [ ] [ ] [ ] ____ _ [ ] ____ _ [ ] D) [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] La D creo que no. ¿Como defines en que columna deseas extenderlo? Según dices, se coloca siempre en la primera columna que no esta extendida: ¿Esa así?
array1.push([item1 1, item1 2, item1 3]); array1.push([item2 1, item2 2, item2 3]);
Gracias
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 3:37 pm
Citar
A ver si esto aclara las cosas:Código :
var arr1:Array = new Array (); // No es una L, es un "uno" arr1.push (["a0", "a1"]) arr1.push (["b0", "b1"]) // trace (arr1); // Output: a0, a1, b0, b1 trace (arr1[0]); // Output: a0, a1 trace (arr1[1][1]); // Output: b1
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 3:42 pm
Citar
Ok, ya. Tnks.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 3:44 pm
Citar
Por cierto, en el caso que comentás, la respuesta es....... ninguno El push agrega el Array2 como el último elemento del Array1. Entonces, el Array2 va a quedar en el índice 3, sin reemplazar ningún elemento. Justamente esa es su utilidad.
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 3:57 pm
Citar
Es decir, te queda esto: [ ] [ ] [ ] [ ] [ ] [ ]
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 4:06 pm
Citar
No, a menos que el índice 0 del Array1 contuviera los 3 elementos... No es lo mismo esto:Código :
var arr1:Array = new Array ([elemento00, elemento01]): arr1.push ([elemento10, elemento11]);
Que ésto:Código :
var arr1:Array = new Array (elemento0, elemento1): arr1.push ([elemento20, elemento21]);
En el primer caso, el el Array1 contiene los elementos que incluímos con el push en el índice 1, en el segundo caso, lo que agregamos con el push se encuentra en el índice 2. Los números a los elementos se corresponden con sus índices.
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 4:15 pm
Citar
Código :
var multiarray:Array = new Array(); multiarray.push([item1a, item1b, item1c]); multiarray.push([item2a, item2b, item2c]); multiarray.push([item3a, item3b, item3c]); /* [item1a] [item2a] [item3a] [item1b] [item2b] [item3b] [item1c] [item2c] [item3c] */
Para añadir una columna más al arrayCódigo :
push_columna([item4a, item4b, item4c]); // function push_columna(columna:Array) { multiarray.push(columna); } /* [item1a] [item2a] [item3a] [item4a] [item1b] [item2b] [item3b] [item4b] [item1c] [item2c] [item3c] [item4c] */
Para añadir una fila más al arrayCódigo :
push_linea([item1d, item2d, item3d, item4d]); // function push_linea(linea:Array) { for (var i:Number = 0; i < multiarray.length; i++) { multiarray[i].push(linea[i]); } } /* [item1a] [item2a] [item3a] [item4a] [item1b] [item2b] [item3b] [item4b] [item1c] [item2c] [item3c] [item4c] [item1d] [item2d] [item3d] [item4d] */
Para acceder a los datosCódigo :
multiarray[columna][linea]
_________________
MY : Blog | Facebook | Twitter | Pownce | Jaiku | Plurk | Last.fm | Flickr .
Zguillez
BOFH
clabLevel: 4113
BCN
3 Tutoriales
40 Tips
1 Ejemplos
Volver arriba
Publicado: Lun Jul 09, 2007 4:20 pm
Citar
No vendría mal hacer un tutorial explicando y ejemplificando cada uno de los métodos y propiedades de la clase Array. Cuando tenga tiempo, lo armo y lo subo.
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 4:44 pm
Citar
Sólo por curiosidad Bleend, para que necesitas un Array Bi/Multidimensional? Yo los uso para los Mapas en los Tile Based Games, y los cargo con un doble for .Aquí un ejemplo
_________________
Carloz.Yanez
SWAT Team
clabLevel: 2374
Entrance to Hell
3 Tutoriales
31 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 4:54 pm
Citar
Fantástico Zguillez. Verdaderamente te lo curras. Lo que me pasaba, es que "los vectores", los disponía de forma horizontal dentro de la matriz, tal como me venían. Error, no se debe hacer así. Ok, ahora creo que con los códigos de Zguillez ya lo he entendido correctamente. Hagamos la prueba de fuego:
HernanRivas escribió:
Código :
var miArray:Array = new Array (); for (var i = 0; i < 5; i++) { miArray.push (["algo" , i]); // No te olvides de los corchetes. }
Vale, según creo, esto te crea una matriz de 2x5 así:
[algo] [algo] [algo] [algo] [algo]__ [0]___ [1]___ [2]___ [3]___ [4]
¿Es correcto?
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años. Ultima edición por Bleend el Lun Jul 09, 2007 5:01 pm, editado 1 vez
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 4:58 pm
Citar
carloz.yanez escribió:
Sólo por curiosidad Bleend, para que necesitas un Array Bi/Multidimensional?
Yo los uso para los Mapas en los Tile Based Games, y los cargo con un doble
for .
Aquí un ejemplo
Bueno, estoy haciendo un 3 en raya en flash, para referirme al tablero, uso una Matriz 3x3. Lo solucioné usando esto:Código :
var t:Array = new Array(); t = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 5:05 pm
Citar
Zguillez
BOFH
clabLevel: 4113
BCN
3 Tutoriales
40 Tips
1 Ejemplos
Volver arriba
Publicado: Lun Jul 09, 2007 5:27 pm
Citar
Creo que si hubiera posteado mi ejemplo desde el principio se hubiesen evitado tanto post. En fin, no recordaba ni que lo habia hecho. P.D. La foto esta genial hahaha.
_________________
Carloz.Yanez
SWAT Team
clabLevel: 2374
Entrance to Hell
3 Tutoriales
31 Tips
Volver arriba
Publicado: Lun Jul 09, 2007 5:28 pm
Citar
*Zguillez hablando con n00bs PD. Por cierto, yo soy mucho mas guapo que ese.
_________________ La vida de una resonancia atómica es a una millonésima de segundo lo que una millonésima de segundo a tres mil años.
Bleend
clabLevel: 2125
I-fail-at-life Bleend Networks Incorporated central offices
1 Tutoriales
5 Tips
Volver arriba
Publicado: Mar Jul 10, 2007 1:47 pm
Citar
Bien, acabo de hacer el tutorial que mencioné más arriba. Aunque veo que se me adelantaron .... De todos modos, me enfoqué más en los métodos, y a los Arrays multidimensionales no los traté con demasiada profundidad.Éste es el link .
_________________ Hernán Rivas Acosta -hernanrivasacosta@gmail.com - Gracias a PenHolder por el avatar los avatares.
HernanRivas
clabLevel: 2580
1 Tutoriales
23 Tips
Volver arriba