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:
- Permite almacenar pequeñas cantidades de datos en el ordenador del cliente
- 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
- TimerEvent.TIMER
- TimerEvent.TIMER_COMPLETE
Ejemplo de Timer