Objetos y clases – ActionScript 3.0
Programación Procedural
Instrucciones que generan procedimientos
En ActionScript todo lo relacionado a funciones que generan tareas.
Pros
- Implantación rápida, resultados rápidos
Contras
- Poco mantenible a la larga, en aplicaciones con más de 500 líneas de código.
Orientado a Objetos
Divide el código en entidades diferentes
Pros
Escalables
Metodología de programación
Contras
Implantación lenta
Fácil abuso de ella sobrearquitectura de las cosas
Objeto
Es un subprograma que mantiene información y funcionalidad que maneja esa información que se está guardando
A los datos se los conoce como propiedades y a las funciones cómo métodos.
Clases
Plantilla para crear objetos
Definición abstracta de lo que va a ser un objeto.
Todos los objetos creados a partir de una misma clase van a tener los mismos métodos y propiedades.
Lo que crea un objeto único o diferente a otro es el valor de las propiedades.
Clases sin propiedades se hacen estáticas como la clase Math.
Todo lo que se puede hacer en flash está encapsulado en clases.
Paquetes
Un paquete puede contener otro paquete, clases o definiciones de funciones.
1.- Paquete Flash
La utilización de este paquete no añade código ni peso a nuestra película. Se encuentra integrado dentro del flash player.
2.- Librería FL
Son los componentes de flash. No viene compilada dentro del flash player. Hay que añadir el código a la película flash cuando usemos un componente.
3.- Libería mx
Componentes de Flex
Sirven para organizar el código y para que no halla colisión entre nombres.
Como crear un objeto a partir de una clase
Operador new
Una vez instanciado el objeto podemos acceder a sus métodos y propiedades
trace(punto);
punto.offset(30, 10); // Offset desplaza el punto
trace(punto); salida (60, 10);
El constructor puede recibir parámetros, si vienen entre corchetes, éstos son opcionales.
Si escribimos el código en línea de tiempo podemos usar los paquetes sin importarlos.
Cuando trabajemos con clases tenemos que importar las clases.
import flash.geom.Point;
import flash.geom.*; // importa el paquete entero
Importando una clase no se añade el código al swf. Si no tiene el paquete importado se va a ir al top level a buscar.
En el momento de compilación busca las clases y las compila en el .swf
Cuando se instancia una clase flash va a mirar si es una clase del top level --> si no, se pone a mirar en las directivas import del código para buscar la clase.
COMO CREAR UNA CLASE
creamos el nombre del paquete, si no va dentro de ningún paquete lo dejamos vacío pero usamos la declaración de package
Por cada archivo de ActionScript solo puede haber una definición o de función o de clase.
CLASSPATH (rutas de clase)
Ruta donde va a buscar flash las clases en el disco.
1.- DE DOCUMENTO
2.- GLOBALES
Se configuran en preferencias --> ActionScript
De manera predeterminada vienen dos classpath por defecto
"." va a buscar en el mismo directorio que el propio archivo .fla
$(AppConfig)/ActionScript 3.0/Classes va a buscar en el directorio Adobe Flash CS3 es
Archivos .swc código precompilado ,no son más que archivos .zip con un archivo xml y otro swf
Podemos insertar los classpath que queramos
Librería Standard (Clases de Flash)
Clases del proyecto (Clases que están al lado del fla)
Nuestra librería de clases
En configuración de publicación en la pestaña de Flash tenemos tambien una Ruta de Clases, pero solo para ese archivo.
En configuración de publicación tenemos una pestaña que crea un SWC, código precompilado para dar al cliente cuando no queremos dar nuestras clases.
ATRIBUTOS DE CONTROL DE ACCESO o Visibilidad
Se usan tanto en propiedades como métodos, asigna quien puede utilizar esa función, clase o método.
public: cualquiera puede ver/utilizar esa definición
private: solo se puede usar desde este código (desde esta clase), métodos de ayuda dentro de la clase. Pensado para uso interno.
protected: lo pueden ver la clase y las subclases
internal: solo puede ser visto por otras clases que estén dentro del mismo paquete. Es el valor por defecto cuando no ponemos ningún atributo.
PROGRAMACIÓN ORIENTADA A OBJETOS
CUALIDADES
1- Abstracción:
Nunca se debería saber el funcionamiento de una clase para poder usarla.
2.- Encapsulamiento:
Una clase no debería dejar modificar sus propiedades.
No poner propiedades públicas.
3.- Herencia
4.- Polimorfismo