Comunidad de diseño web y desarrollo en internet online

¿Alguien me ayuda con esta función de ActionScript 3?

Citar            
MensajeEscrito el 29 Jul 2012 03:09 am
Buenas, soy nuevo y al ver este foro me dan ganas de quedarme :D

Abro este tema porque ando aprendiendo AS3 por mi cuenta y tengo varias dudas, nunca he visto clases de programación aunque siempre he tenido buenas nociones sin embargo esa carencia de asesoría me ha dado algunos problemas para comprender algunas cosas, por ejemplo una función de la cual no entiendo una parte:

>> http://creaciodigital.upf.edu/~smiguel/practica/03arrays/EjemploEliminacionVarios.as <<
(CREO que sólo abre con Google Chrome, a menos que se abra en algún editor de AS3 como Flash, etc)

Se trata de una matriz que tiene una serie de datos de los cuales luego se eliminan SÓLO AQUELLOS que tienen más de 5 caracteres. Mi duda es la siguiente: Si el atributo "length" es para contar el número de datos de una Array, por qué de pronto se utiliza para contar el número de caracteres de cada palabra dentro del Array?? Intenté colocando:

trace (miArray[2].length)

..para que me diga el número de caracteres de la palabra en la posición 2, y vi que sí se podía usar de esa forma, también veo que se utiliza de la misma forma en el Array, por ejemplo: miArray[i].length - No entiendo qué papel está jugando [i] dentro del length que haga que se cuenten los caracteres en vez del número de datos, espero haberme explicado, en todo caso pueden simplemente explicarme paso a paso qué se hace en esa función? Me cuesta debido a que aprendo solo y no tengo quien me asesore por eso vengo a ustedes, desde ya muchas gracias ^^

NOTA: Si estudian otro lenguaje de programación como C o C++ el trace() imaginen que es un print()

Por DaveyDsign

6 de clabLevel



Genero:Masculino  

Diseño Gráfico

chrome
Citar            
MensajeEscrito el 30 Jul 2012 03:19 am
cada elemento que esta en array es un String. Por eso podes utilizar miArray[2].length, ya que miArray[2] hace referencia a un string. Pero si en lugar de haber strings hubiera numeros, te arrojaria error. utilar esta forma seria como ahorrarse un paso, de esta forma:

var myString:String = miArray[2];

trace(myString.length);

Los arrays en as3 son multitipos, por decirlo de alguna manera. Porque dentro de un array podes almacenar diferentes tipos de objetos. O sea, no es necesario que los elementos de un array tengan que ser del mismo tipo de datos.

Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 04 Ago 2012 10:25 am
Sí, eso ya lo supuse, mi duda era sobre cómo utilizaban el .length para definir qué cadena tenía más de 5 caracteres ya no entiendo por qué colocan el [i]

Por DaveyDsign

6 de clabLevel



Genero:Masculino  

Diseño Gráfico

chrome
Citar            
MensajeEscrito el 04 Ago 2012 01:56 pm
xD
para acceder a cada dato dentro del array utiliza el for, que hace que la variable i varie, con miArray[i] obtenes el dato que esta en esa posicion i.

miArray.length es como vos decis, devuelve la cantidad de elementos que hay en el array.
Pero si tu variable es un String (cadena de caracteres) la propiedad length devuelve la cantidad de caracteres.


ej:

Código ActionScript :

var miArray:Array = new Array('a', 'b', 'c', 'd', 'e', 'f');

trace(miArray.length); //devuelve 6

var miString:String = 'hola, como estas?';

trace(miString.length) ; //devuelve 17


Imagina que te piden llevar pan y leche a un lugar
Cuando llegas te pregunta:

que cantidad de pan trajiste: vos respondes 5kg
y si te preguntan
que cantidad de leche trajiste: vos respondes 3 litros

en codigo lo que te preguntan seria asi

pan seria del tipo pesable y leche del tipo volumen

Código ActionScript :

trace(pan.cantidad) //devuelve 5kg

trace(leche.cantidad) // devuelve 3 litros


o sea, que para cada tipo usaste la propiedad cantidad para saber cuanto llevaste. Pero para cada tipo usaste una forma distinta de medirlo. Y ahi esta la conclusion. Aunque dos tipos tengan una propiedad con un mismo nombre, cada tipo devolvera un resultado utilizando su propia metodologia. Porque, para medir que cantidad de pan, lo tenes que pesar. Pero la leche no se pesa, la leche la meterias en un recipiente graduado, donde dependiendo la altura que alcance sabras su volumen en litros.


Por ultimo y por las dudas:

miArray[i] seria decir: dato en la posicion i del array miArray.

miArray[i].length devuelve la cantidad de caracteres, porque miArray[i] hace referencia a un tipo de dato String.

Si por ejemplo en miArray[i] hubiera un tipo de dato pesable:
miArray[i].cantidad devuelve la cantidad de pan, porque miArray[i] hace referencia a un tipo de dato pesable.


Espero que te sirva de algo


Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome

 

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