Un poco de teoría: Datos y variables (I)

Volver al índice

Lo que vale un peine… digo un bit!

Nuestros programas necesitan datos para trabajar. La posición de una instancia en la escena, su nombre, la velocidad a la que se mueve, si es visible o no, etc.

Todos estos datos se almacenan en memoria. De momento nos importa poco entender los detalles del funcionamiento de la misma, y de como la gestiona el reproductor de flash. Lo que sí que nos importa, en esta primera fase, es gestionar bien que datos se almacenan en memoria y cuales no y como trabajar con ellos para no ocupar más de la necesaria.

Todos los lenguajes de programación definen lo que se denominan Tipos de Dato para facilitar esa tarea. Para entender como y por qué es necesario tener una visión general, aunque sea muy simplista, de como se gestiona la memoria en cualquier sistema informático.

Como probablemente sabréis todos la información se codifica en sistema binario dentro de un ordenador. Eso significa que todos nuestros datos, deberán ser convertidos a números que solo contienen ceros y unos como dígitos. Aquí es donde nos saltamos los detalles del cómo se realiza la traducción. No nos importa.
bit-byte
Pero sí que nos conviene saber que una imagen necesita el espacio en memoria correspondiente a 24 bits, o sea 24 dígitos que pueden contener un 0 o un 1, por cada uno de sus píxeles. 32 si la imagen tiene transparencia.

El tamaño importa

Demostración práctica: Imaginad que queréis mostrar en pantalla un mensaje (de 10 caracteres de texto), pero queréis hacerlo bien bonito y decidís que en lugar de averiguar como embeber la fuente en vuestra película, es mucho más sencillo escribirlo en photoshop y exportarlo a un png con transparencia.

Una imagen exportada de esta manera es un mapa de bits, que es un tipo de datos.

Imaginad que la imagen resultante no es muy grande: 80×20 píxeles. A 32 píxeles por pixel:

80 x 20 x 32 = 51200 bits

Comparemos ahora con lo que ocupa la misma información si la almacenamos en formato de texto.

Una cadena de texto es otro tipo de datos, y está compuesto por caracteres.

Un caracter de texto ocupa 16 bits:

8 x 16 = 128 bits

Almacenando esta información como texto ocupamos exactamente 400 veces menos memoria que utilizando su equivalente en mapa de bits.

Uno podría argumentar que existen formatos de imagen más eficientes que el png para comprimir la imagen y que si utilizamos un jpg ocupará menos memoria ¡ERROR! Las imágenes se guardan en formatos comprimidos para que ocupen menos en el disco duro, o para que tarden menos en descargarse de internet. Pero cuando se pasan a la memoria de video para poder volcarlas en pantalla el sistema operativo las descomprime y ocupan lo mismo un jpg que un png.

Os dejo esta tablita de equivalencas entre bits, KB, MB, etc. para que os hagais una idea de cuanto es un bite comparandolo con unidades a las que estamos más acostumbrados y pasamos a otro tema.

tabla de byte

Tipos básicos de dato en as3

A estas alturas debería ser evidente por qué conocer los diferentes tipos de datos y usar ese conocimiento para decidir cuál es el mejor modo de alamacenar nuestra información.

Actionscript define un motón de tipos de dato, Enumerarlos todos sería interminable. Pero, por suerte, como en todos los lenguajes orientaods a objetos, todos estos tipos están basados en una pequeña colección de tipos básicos:

datatypes

Number (64 bits):
Números reales con decimales, en notación de coma flotante, con la cual se pueden representar números reales extremadamente grandes y pequeños de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritméticas con la mayor exactitud.

int (32 bits):
Números enteros (positívos y negativos, sin decimales). Útil para contadores de bucles y otras situaciones en las que no sea necesario un número de coma flotante.

uint (16 bits):
Números enteros (positívos y negativos, sin decimales). La clase uint resulta útil principalmente para valores de color de píxel (ARGB y RGBA) y otras situaciones en las que el tipo de datos int no funcione bien. Por ejemplo, el número 0xFFFFFFFF, que representa el valor de color blanco con un valor alfa de 255, no puede representarse utilizando el tipo de datos int porque no está dentro del rango válido de los valores int.

String (16 bits/caracter):
Representa una cadena de caracteres. Se utiliza para trabajar con textos, evidentemente.

Boolean(16 bits):
También llamado tipo lógico o booleano. Sólo puede tener dos valores: true o false. Se utiliza para operaciones lógicas, sobre todo en estructuras condicionales como if.

Object(? bits):
Se utilizan para definir estructuras de datos complejas y son la base de todos los demás tipos de datos en ActionScript. Su tamaño en memoria depende de la cantidad y el tipo de datos que albergue en su estructura interna.

Existen otros tres tipos de dato básicos o primitivos que son un poco extraños: null, void, NaN y undefined. De los cuales nosotros utilizaremos, probablemente, los dos primeros. Los incluyo todos aquí por completitud, pero no os preocupéis si no entendeis esta parte.
Son extraños porque sólo pueden contener un valor, que son el mismo que el tipo de datos (a efectos prácticos), pero son importantes por que nos dicen si una variable ha sido correctamente inicializada o declarada. Veremos como se utilizan más adelante.

En la siguiente entrega veremos como se utilizan los diferentes tipos de datos para definir variables y realizar distintas operaciones.

Volver al índice

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *