4. URLLoader
El Camino Simple
Clase nativa ActionScript 3
Permite la descarga de contenidos en varios formatos
Text
URL encoded variables
Binary
Informa el progreso de descarga
URLLoader.bytesLoaded
URLLoader.bytesTotal
Dispone los datos una vez completada la descarga
@kiwox– 4
5. URLLoader
Ejemplo
protected var ldr:URLLoader;
protected function loadData():void {
ldr = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onDataComplete);
ldr.addEventListener(IOErrorEvent.IO_ERROR, onError);
try {
ldr.load(new URLRequest("datos.php"));
} catch(e:Error) {
trace("Error al descargar datos");
}
}
@kiwox– 5
7. URLLoader
Datos en Formato XML
protected var xmlData:XML;
protected function onDataComplete(event:Event):void {
xmlData = XML(ldr.data);
for(var i:String in xmlData.item) {
trace(xmlData.item[i].titulo);
}
}
@kiwox– 7
8. URLLoader
Datos en Formato Binario
ldr = new URLLoader();
ldr.dataFormat = URLLoaderDataFormat.BINARY;
ldr.addEventListener(Event.COMPLETE, onDataComplete);
ldr.addEventListener(IOErrorEvent.IO_ERROR, onError);
ldr.addEventListener(ProgressEvent.PROGRESS, onProgress);
try {
ldr.load(new URLRequest("imagen.png"));
} catch(e:Error) {
trace("Error al descargar imagen");
}
@kiwox– 8
10. Flex data components
Abstrayendo Las Tareas
Simplifican la intermediación con el servidor
Disponen los datos listos para usarlos
Admiten formatos más complejos
XML
JSON
AMF
Objeto/Array
Permiten enlazar a componentes visuales
List, TextArea, etc.
@kiwox– 10
11. Flex data components
HTTPService
Obtiene datos directos de estilo REST
Inicia la llamada con el método send()
El resultado estará disponible en la propiedad
lastResult
@kiwox– 11
13. Flex data components
WebService
Interactúa con servicios WSDL
Soporta protocolo SOAP
Permite el envío de parámetros a métodos específicos
Los resultados pueden ser enlazados o esperados en
métodos callBack
Podemos configurar cada operación con elementos
<s:operation>
@kiwox– 13
17. Protocolo AMF
Transferencia Binaria de Datos
Active Message Format
Formato nativo ActionScript
ActionScript 2: AMF0
ActionScript 3: AMF3
Soporta datos primitivos y compuestos
String, Number, Null, Boolean…
Object, Array, XML, ByteArray
Objetos personalizados (ValueObjects)
Especificación AMF3: http://goo.gl/b3qbk
@kiwox– 17
18. Protocolo AMF
Transferencia Binaria de Datos
Desde ActionScript utilizando NetStream
En conjunto con Flash Media Server bajo protocolo rtmp:/
Permite instanciar objetos remotos (servidor)
Soporte disponible en la mayoría de servidores
@kiwox– 18
19. Protocolo AMF
Transferencia Binaria de Datos
var netConnection:NetConnection = new NetConnection();
var responder:Responder = new Responder();
netConnection.connect(“http://localhost/Amfphp/”);
netConnection.call(“DataService/getRecords”, responder);
@kiwox– 19
23. Sistema de Archivos
File
Localiza y resuelve punteros a archivos
Permite consultar propiedades y existencia
FileStream
Flujo de lectura/escritura de datos
24. Sistema de Archivos
Localizar Crear Flujo de Leer Datos Cerrar Flujo
Recurso Datos
@kiwox– 24
25. Sistema de Archivos
Localizar Crear Flujo de Escribir Datos Cerrar Flujo
Recurso Datos
@kiwox– 25
26. Sistema de archivos
var archivo:File = File.documentsDirectory.resolvePath(“datos/listado.xml”);
if(archivo.exists) {
…
}
@kiwox– 26
33. SQLite
SQLConnection
Objeto conector
Localiza el recurso y maneja las transacciones
@kiwox– 33
34. SQLite
var conn:SQLConnection = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, openHandler);
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
conn.openAsync(dbFile);
function openHandler(event:SQLEvent):void
{
trace(”Base de datos abierta");
}
function errorHandler(event:SQLErrorEvent):void
{
trace(“Error:”, event.error.message);
trace(“Detalles:”, event.error.details);
}
@kiwox– 34
35. SQLite
var conn:SQLConnection = new SQLConnection();
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("DBSample.db");
try
{
conn.open(dbFile);
trace(”Base de datos abierta");
}
catch (error:SQLError)
{
trace("Error:", error.message);
trace(”Detalles:", error.details);
}
@kiwox– 35
36. SQLite
SQLStatement
Transacciones individuales
Pueden ser asincrónicas
@kiwox– 36