En este capitulo tendremos una pequeña muestra de todas las clases que constituyen la SDK (Software development kit) de Flash Player.

Podemos ver toda esta información en la ayuda de Flash, ordenada:

Classes ->Métodos, Atributos, y Eventos

8.1. El objeto Array

8.1.1. Propiedades

length: Devuelve el número de elementos del Array.

8.1.2. Métodos

1 concat(…args):Array

2 join (separadores:*):String

….

9.SortOn (nombredelcampo):Object

8.2. La Clase Date

Getters

1. fecha.getDate();

2.fecha.getDay();

….

19. fecha.getYear();

Setters

1 fecha.setDate();

2 fecha.setFullYear();

8.3 Function

Los objetos permiten almacenar referencias a funciones. Las funciones almacenadas en este tipo de objetos, son ejecutables.

1. Function.apply()

2. Function call.

8.4. La clase Math

Propiedades

1. Math.E.

2. Math.Ln2

8. Math.SQRT2

Métodos

1.charAt

2. charCodeAt

….

12.toUpperCase(9;

8.6. El paquete flash.display

Este paquete contiene las clases utilizadas por Flash Player dedicadas al pintado, y renderizado y manejo de elmentos visuales en pantalla.

6.6.1. flash.display.Bitmap y flash.display.BitmapData.

La Clase Bitmap representa imágenes de tipo Bitmap o raster, en vez de gestionarlas de forma vectrial como hace el resto de elemntos de flash, esta permite controlar elemntos a nivel de pixel. Es una clase instanciable con representación visual. Sus instancias se pueden añadir al Dispaly List. Los datos que se pintan, se encuentran en una instancia de la clase BitmapData.

Resumen: Una instancia de la calse Bitmap, pinta en pantalla la información almacenada en una isntancia de la clase Bitmapdata.

Ejemplos 8.6.1.

Propiedad

1 bitmapData:Bitmap

Lo mas importante de BitmapData:

1. applyfilter();

2. clone();

3.copyChannel();

8.thresold();

8.6.2. La clase Graphics

Permite crear figuras vectoriales con código. Se suele usar con la propiedad graphics de cualquier objeto que herede flash.display.Sprite.

Esta trabaja con conceptos básicos de línea y de relleno:

1. Beginfill()

2. draw();

3. curveTo

….

8.6.3. La clase Loader

Permite cargar recursos externos de tipo swf o imágenes. La carga es asíncrona.

1.contentLoaderInfor. Retorna un obejto de tipo LoaderInfor con info de la entrada de la carga.

Métodos mas importantes:

1 Load. Carga del contenido de una URL determinada por URLRequest.

2. close(). Cancela una carga en proceso.

3. LoadBytes. Permite cargar desde un ByteArray.

4.unload. Carga concluida, descarga de los contenidos.

Eventos:

1. Event.COMPLETE

2…..

6. ProgressEvent.Progress. Este lo usaremos para crear una barra de progreso.

8.6.4. El paquete flash.text

Estas classes permiten trabajar con campos de texto, formatos, métricas y hojas de estilo aplicables a los textos.

Podeis ver varias de estas aplicaciones en el componente que os puse para descargar en la anterior lección.

8.6.5. El paquete flash.system

Funcionalidades a nivel de sistema para manejar aspectos como la gestión de memoria, la seguridad o las prstaciones nativas activas de Flash Player.

A destacara la clase Capabilities, que se encarga de gestionar la información sobre el sistema y el entorno.

Información variada:

Acelaración por hardware.

Tarjeta de sonido

Reproducción de video y audio

Versión del sistema operativo y del flash player.

El idioma

La resolución de pantalla

Profundidad de color de la pantalla

Función de ejemplo:

public function detectamonitor() {
if ((flash.system.Capabilities.screenResolutionY<1000) && (flash.system.Capabilities.screenResolutionY>800)) {
//Muestra todos los elementos
}
if ((flash.system.Capabilities.screenResolutionY<=800) && (flash.system.Capabilities.screenResolutionY>700)) {
//Muestra solo 8 elementos
}

…………………………………………………………………………………..

}

En su contexto: http://www.wikifree.tv (Pantalla completa)

8.6.6. El paquete flash.net

Clases para gestionar el envío, recepción y comunicación de flash con sistemas externos através de la red.

El método de paquete navigateURL

Abre ventana de navegador, cargando url pasado de parámetro de una URLRequest.

try {
navigateToURL(new URLRequest(“index.php?option=com_user&view=login&Itemid=2#abajo”),”_parent”);
}
catch (e:Error) {
//trace(“Error de Conexión”);
// Abriríamos un mini pop up diciendo que no ha sido posible conectarse
}

La clase URLRequest

Este tipo de objeto encapsula toda la información de una petición HTTP.

Permite pasar:

  • La URL destino
  • Las cabeceras que se usan
  • Los parámetros que se pasarán en la invocación
  • El método de invocación.

Clases que la usan:

  • Loader (imagenes y swf)
  • URLLoader (carga de datos)
  • navigateToURL (enlace http)
  • URLStream (enlace del stream)
  • FileReference (upload de archivos)

La clase FileReference

Permite hacer uploads desde la máquina lciente hasta su servidor o al revés (descarga archivos).

NOTA: La seguridad de flash player solo permite hacer un upload de un fichero que haya seleccionado el usuario. Esta seguridad tampoco nos permitirá seleccionar un archivo de sistema.

var url_archivo:URLRequest = new URLRequest();
url_archivo.url=”http://www.ramonleon.com/as3/login.gif”
var referencia_archivo:FileReference = new FileReference();
referencia_archivo.download(url_archivo,”login.gif”);

La clase SharedObject

Sería algo asi como la clase que se encarga de las “cookies” en flash.

Tiene dos objetos diferenciados:

  1. Permite almacenar pequeñas cantidades de datos en el ordenador del cliente
  2. Trabaja con Flash Media Server

La clase URLLoader

Permite cargar datos dinámicos provenientes de XML externos, ficheros de texto plano, invocaciones a páginas php, jsp, servlets, asp, ruby, python o cualquier otro lenguajes de servidor.

Los atributos mas relevantes son:

  • bytesLoaded. bytes cargados
  • bytesTotal. bytes totales. El anterior junto con este, se suelen usar en barras de progreso.
  • data. Cuando se completa la carga, la información se almacena en data. Según el tipo de carga (lo define el atributo URLLoaderDataFormat), accederemos a esta información de una u otra forma.
  • URLLoaderDataFormat. Puede ser:
    • TEXT. Texto plano
    • BINARY. Binario.
    • VARIABLES. Variables

Métodos

  • load (new URLRequest)
  • close(). Cancela una carga en proceso.

Eventos

Event. COMPLETE

HTTPStatusEvent.HTTP_STATUS

Event.INIT

IOErrorEvent.IO_ERROR

Event.OPEN

ProgressEvent.PROGRESS. Usada para barras de progreso.

Ejemplos:

XML—-> ejercicio8_6xml.zip

BINARY —-> ejercicio8_6binary.zip

8.6.7 El paquete flash.media

Paquete para audio y video. Lo veremos mas adelante (si hay tiempo…)

NOTA: Para controlar las señales de audio y video emitido por un microfono o webcam solo se puede almacenar si se trabaja con un servidor de streamming como Flash Media Server.

A destacar… Desde la versión de Flash player 9.0.115, se pueden reproducir otros ficheros de videos (a parte de los flv nativos…), que hayan sido codificados bajo la norma H.264.

Las clases Sound, SoundChannel y SoundTransform

Permite controlar los sonidos que se reproducen en una película de Flash.

NOTA: Para optimizar el tamño de las películas, es recomendable cargar el audio de forma externa.

var sonido.Sound = new Sound (urlRequest);

Los sonidos pueden ser “.wav” y “.mp3”.

Los atributos de esta clase son:

  • bytesLoaded
  • bytesTotal
  • id3. Acceso al canal metadatos de los mp3.
  • lenght. Duración de la canción en milisegundos.
  • url. La url del fichero que se está reproduciendo.

Los métodos:

close(). Cierra el stream

load. Procede a la carga del fichero

play. Procede a la reproducción del sonido.

Eventos:

Event.COMPLETE

Event.ID3

IOErrorEvent.IO_ERROR. Error proceso de carga.

Ejemplo libro: ecualizador.fla

La clase Video

Se usa para ver ficheros externos de video. Permite delimitar el area visual en el que se va a representar el video.

Tipo de ficheros:

  • flv
  • Archivos H.264
  • Streamming desde flash media server

Las clases NetConection y NetStream

Se encargan de controlar la conexión tanto en Streamming coom en descarga progresiva.

Estos pueden servir:

  • Aplicaciones de videoconferencia
  • Disponer de acceso a videos de alta calidad sin bajar ningún plugin… (claro que al final siempre acabamos actualizando el flash player xdxd…)

Ejemplo libro: netconnection-netstream

Eventos:

NetStream.Buffer.Empty
NetStream.Buffer.Full
NetStream.Play.Start
NetStream.Play.Stop
NetStream.Play.StreamNotFound

8.6.8. El paquete flash.printing

Este paquete engloba la información a la hora de la impresión desde documentos flash.

Ejercicio 8.6.8.

8.6.9. El paquete falsh.ui

La clase keyboard

Las clases keyboard nos permite controlar los eventos desde el teclado.

Por ejemplo si persionamos una tecla, podremos controlar cuando lo he presionado.

this.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(teclita:KeyboardEvent):void {

texto.text =”ha pulsado la tecla con código ” + teclita.keyCode;

}

La clase Mouse

Permite dos métodos estáticos que nos permiten mostrar u ocultar el cursor o puntero. Mouse.hide() lo oculta y con el evento MOUSE_MOVE sobre el stage…, le asignamos el nuevo puntero.

Ejemplo Mouse

Ampliación de información API ActionScript 3

Las clases ContextMenu y ContextMenuItem

Menu contextual del botón derecho sobre la película flash.

Ejemplo Menu Contextual

8.6.10 El paquete falsh.utils

Contiene las clases de utilidades varias como:

  • Temporizadores
  • Estructuras de datos como: Dictionary, ObjectProxy, ByteArray

La clase ByteArray

Esta clase expone los métodos y propiedades para trabajar con datos binarios.

Esta clase con su debida implementación podría leer archivos como word, excel, powerpoint…

Las funciones de paquete setInterval y clearInterval

Permite la ejecución de “porciones” de código como una determinada periodicidad.

Ejemplo setInterval

Las funciones de paquete setTimeOut y clearTimeOut

Sería igual que las funciones anteriores, solo que en este caso se usaría en un contexto tipo cuenta atrás…

La clase Timer

La diferencia con las dos anteriores, es que esta podremos controlarla con eventos, cosa que con las dos anteriores: setInterval y setTimeOut “NO”.

Atributos

  • currentCount. Cuantas veces se ha ejecutado la función
  • delay. Tiempo entre invocaciones
  • repeatcount. Número de veces que se va a repetir la ejecución. Sino se indica el nº de veces, será periódica e indefinida.

Métodos

  • reset. Reinicia el timer
  • start. Pone en marcha el tiemr
  • stop. Para el timer

Eventos

  1. TimerEvent.TIMER
  2. TimerEvent.TIMER_COMPLETE

Ejemplo de Timer