Sei sulla pagina 1di 74

Presentan: Ricardo Arcos Garca Claudia Raquel Len Cruz Susana Domnguez Len Yuriria Guemez Hernndez Carrera:

Ingeniera en Sistemas Computacionales Asignatura: Lenguajes y herramientas para el desarrollo web Profesor: Lic. Jos Juan Uln Ricardez Trabajo: Adobe Flash Builder 4 (FLEX)

Equipo: #1 Fecha: 13 de octubre del 2011

Lenguaje y herramientas para el desarrollo web Introduccin

Los programadores tradicionales de aplicaciones ven como un desafo adaptar la metfora de la animacin sobre la plataforma con la cual fue originalmente construido Flash. Flex minimiza elegantemente este problema proveyendo un flujo de trabajo y un modelo de programacin que es familiar a los desarrolladores de aplicaciones.

Flex fue inicialmente liberado como una aplicacin de la J2EE o biblioteca de etiquetas JSP que compilaba el lenguaje de marcas Flex (MXML) y ejecutaba mediante ActionScript aplicaciones Flash (archivos SWF binarios). Versiones posteriores de Flex soportan la creacin de archivos estticos que son compilados, y que pueden ser distribuidos en lnea sin la necesidad de tener una licencia de servidor.

El objetivo de Flex es permitir a los desarrolladores de aplicaciones web construir rpida y fcilmente Aplicaciones de Internet Ricas, tambin llamadas RIAs. En un modelo multi-capa, las aplicaciones Flex son el nivel de presentacin.

Flex pone en relieve el desarrollo de Interfaces grficas de usuario usando un lenguaje XML llamado MXML. Flex tiene varios componentes y caractersticas que aportan funcionalidades tales como Servicios Web, objetos remotos, arrastrar y soltar, columnas ordenables, grficas, efectos de animacin y otras interacciones simples. El cliente solo carga la aplicacin una vez, mejorando as el flujo de datos frente a aplicaciones basadas en HTML (PHP, ASP, JSP, CFMX), las cuales requieren de ejecutar plantillas en el servidor para cada accin. El lenguaje y la estructura de archivos de Flex buscan el desacoplamiento de la lgica y el diseo.

Lenguaje y herramientas para el desarrollo web ndice


Anlisis comparativo de flex con otros lenguajes Asp.net ..................................................................................................... 2 Php........................................................................................................... 2 Jsp ........................................................................................................... 3 Conceptos bsicos de adove flex Tipos de datos.......................................................................................... Controles de flujo ..................................................................................... Condicionales ifelse .............................................................................. Switch ...................................................................................................... Ciclos ....................................................................................................... For............................................................................................................ For in ........................................................................................................ For eachin............................................................................................. While ........................................................................................................ Do while ................................................................................................... 5 8 8 11 13 13 14 15 17 18

Funciones Sentencias de funcin .............................................................................. 20 Devolucin de valores de funciones......................................................... 21 Funciones anidadas ................................................................................. 22 Parmetros Parmetros de funcin ............................................................................. 23 Pasar argumentos por valor o referencia ................................................. 23 Valores predeterminados de los parmetros ........................................... 26 Acceso a datos Condiciones y desventajas....................................................................... Ejemplo .................................................................................................... Acceso a datos del lado del cliente .......................................................... Ejemplo .................................................................................................... Carga de datos del lado del cliente .......................................................... Seguridad en adobe flex .......................................................................... Autenticar el acceso a los servicios ......................................................... Autentificacin bsica .............................................................................. 27 28 29 30 30 31 31 31

Lenguaje y herramientas para el desarrollo web


Autentificacin remota .............................................................................. 31 Configurar los parmetros de entrada a una operacin ........................... 32 Privacidad ................................................................................................ 32 Manejo de errores Tipos de errores ....................................................................................... Errores sincrnicos .................................................................................. Errores asincrnicos ................................................................................ Estrategia de gestin de errores .............................................................. Deteccin de errores ................................................................................ Sesiones Sesiones con Flex .................................................................................... 38 Concurrencias Infraccin de concurrencias ..................................................................... 43 Comandos para el control de concurrencias ............................................ 44 Compatibilidad Compatibilidad de Flex con otros lenguajes ............................................. 46 Programacin orientada a objetos Programacin orientada a objetos ........................................................... 47 Componentes orientados a POC ............................................................. 48 Ejemplos prcticos ................................................................................... 52 Anexos ........................................................................................................ 54 35 35 36 37 37

Lenguaje y herramientas para el desarrollo web

Comparacin entre los lenguajes de Programacin Web

DESCRIPCION

JSP

PHP

ASP.NET

Fcil de aprender

No

Si

Si

Multiplataforma

Si

Si

No

Facilidad de conexin a base Si de datos

No

Si

Velocidad de acceso

Si

Si

Si

Distribuido

Si

No

Si

Licencia Open Source

Si

Si

No

Constante desarrollo

Si

No

Si

Soporta clases

Si

No

Si

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Asp.Net Caractersticas

Ventajas

Es un framework de desarrollo Comercializado por Microsoft Se puede usar C#, VB.NET o J# en los desarrollo web Los archivos son extensin .aspx Las aplicaciones necesitan de framework de .NET Se ejecuta en el lado del servidor Completamente orientado a objetos. Controles de usuario y personalizados. Divisin entre la capa de aplicacin o diseo y el cdigo. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad.

Desventajas

Mayor consumo de recursos.

PHP Caractersticas Interpretado Usado principalmente para sitios dinmicos Embebido en html Lenguaje libre Multiplataforma Muy fcil de aprender. Se caracteriza por ser un lenguaje muy rpido. Soporta en cierta medida la orientacin a objeto. Clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras. Capacidad de expandir su potencial utilizando mdulos. Posee documentacin en su pgina oficial la cual incluye descripcin y ejemplos de cada una de sus funciones. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Incluye gran cantidad de funciones.

Ventajas

Adobe Flex

Lenguaje y herramientas para el desarrollo web


No requiere definicin de tipos de variables ni manejo detallado del bajo nivel.

Desventajas

Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser ms ineficiente a medida que las solicitudes aumenten de nmero. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y PHP. La programacin orientada a objetos es an muy deficiente para aplicaciones grandes. Dificulta la modularizacin. Dificulta la organizacin por capas de la aplicacin.

JSP Caractersticas

Ventajas

Utiliza la misma sintaxis de Java El cdigo se puede poner dentro de las pginas HTML Se puede precompilar en Servlets Permite integrar clases java (.class) Puede generar aplicaciones web distribuidas Licencia Open Source Plataforma e independencia del servidor No se paga software adicional para crear paginas web Multiplataforma Se requiere conocer Java

Desventajas

Adobe Flex

Lenguaje y herramientas para el desarrollo web

PHP Desarrolladores PHP Group PHP es un lenguaje de programacin muy potente que, junto con HTML, permite crear sitios web dinmicos. PHP se instala en el servidor y funciona con versiones de Apache, Netscape Enterprise Server y otros. PHP es un acrnimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementacin principal de PHP es producida ahora por The PHP Group y sirve como el estndar de facto para PHP al no haber una especificacin formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre.

Requerimientos de instalacin 1.-un servidor 2- un lenguaje del lado del servidor (php5)

Licenciamento Sobre php se que puedes crear desarrollos libres, ahora creo que el problema se genera en hacerlo de libre acceso o privado, osea patentar tu desarrollo.

Soporte Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. PHP es Open Source, lo cual significa que el usuario no depende de una compaa especfica para arreglar cosas que no funcionan, adems no ests forzado a pagar actualizaciones anuales para tener una versin que funcione.

Conexin a la base de datos Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Editores y entornos de desarrollo de PHP (IDES)

PHPedit - Editor IDE (Integrated Developement Environment) de PHP para Windows con coloreado de sintaxis, depurador PHP integrado, generador de ayudas, atajos de teclado personalizables, plantillas de teclado, generador de informes de tareas pendientes y diversos plugins.

Maguma - Maguma estudio es un IDE para PHP a nivel de cdigo que ofrece ayudas y funcionalidades para acelerar el desarrollo de aplicaciones web.

PHPdesigner - Este entorno de desarrollo combina muchas potentes mejoras como los esquemas de sintaxis personalizable para PHP, HTML, XHTML, CSS, Perl, C#, Java Script, VB, Java and SQL (Ingres, Interbase, MSSQL, MySQL, Oracle, Sybase and Standard SQL), un navegador de clases, interprete de PHP para depurar y probar los scripts, manual de PHP integrado, autosangrado de parntesis, cierre automtico de parntesis y acceso a cdigo comn y libreras integrado.

NuSphere PHPed - Entorno de desarrollo profesional para PHP, con depurador, anlisis de errores, ayudas para la localizacin de cuellos de botella en el cdigo, publicacin segura de cdigo en servidores e integracin con herramientas de terceros.

Dzsoft PHP editor - Dzsoft PHP editor es una herramienta manejable y potente para escribir y probar pginas PHP y HTML. Su interfaz es cmoda y sencilla para novatos y programadores experimentados, haciendo el desarrollo de PHP fcil y productivo.

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Tulip - Tulip es un editor de cdigo basado en PHP-GTK, una herramienta para la programacin de scripts PHP, esta escrito en PHP como lenguaje base y Gtk como interfaz de usuario. Tulip tiene prestaciones que lo hacen idneo para el desarrollo de aplicaciones de free software en entornos colaborativos ya que dispone de soporte CVS.

PHPcoder - PHP Coder es un IDE (Integrated Development Environment) especialmente diseado para programadores de PHP, potente, reducido y libre. Dispone de un intrprete integrado y documentacin que permite ahorrar tiempo en el desarrollo, coloreado de sintaxis HTML y PHP, autocompleta estructuras comunes, gestor de proyectos, copy y paste, bsquedas ...

Forum sobre Phpbb en Castellano - Foro de Soporte phpBB en Espaol, problemas, ayudas, soluciones, bugs, actualizaciones y seguridad, mods

Foros de desarrollo PHPnuke - Forum sobre desarrollo PHPnuke en desarrollonuke.org

tswebeditor - TsWebEditor es un potente y recomendable editor para PHP y HTML que adems puede ser usado como un editor sencillo de texto. Dispone de coloreado de sintaxis, sugerencias de funciones, autocompletitividad de cdigo (PHP, java script, asp, HTML), navegador de cdigo y chequeador de sintaxis, ayuda, asistente css, editor de etiquetas HTML, ...

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Eclipse Editor PHP - Sin duda uno de los mejores entornos de desarrollo para PHP, Java, C/C++ y otros lenguajes, dispone de una potente administracin de proyectos y ficheros, un gran editor con coloreado del lenguaje, deteccin y resaltado de errores sintcticos y de estructuras. Se trata de un entorno IDE cuya principal ventaja es la visualizacin de los errores de escritura, de inclusin de cabeceras etc... adems dispone del manual de PHP integrado y de rpido acceso.

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Sintaxis
Hola-mundo-1.php <html> <title><?php echo prueba; ?></title> <body> <?php echo Hola Mundo!; ?> </body> <html> El cliente recibir esta pagina: <html> <title>prueba</title> <body> Hola Mundo! </body> <html>

Incluyendo archivos

<html> <title><?php echo $titulo; ?></title> <body> <?php echo $contenido; ?> </body> <html> Sintaxis general El nombre del archivo con PHP puede tener la extensin.php para diferenciarlos de los HTML. Usar <?php al inicio y ?> al final de todos los bloques de instrucciones en PHP. Las instrucciones se separan por ;. Los espacios, tabulaciones y avances de lnea no afectan a la ejecucin del programa. No hay necesidad de inicializar las variables o de fijar el tipo de dato que vayan a contener.

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Sintaxis de variables y comentarios Toda variable comienza con $, seguida por una letra o guion bajo, luego puede tener cualquier carcter alfanumrico. Ejemplos: $arreglo, $nombre_2, $Usuario, $_GET Los nombres de las variables son sensibles a las maysculas y minsculas $a y $A no son la misma variable. Pueden agregarse comentarios: /* Estilo lenguaje c*/ // Estilo c++ #Estilo Shell script

Tipos de datos Tipo de dato Enteros Punto flotante Cadenas Boleano Arreglos Ejemplo <?php $contador=5; $pi=3.1415; $mensaje=Hola Mundo!; $html=<b>$mensaje</b>; $resultado=true; $estatus_desc=array (A=>Activos, B=>Inactivos; $vocales=array(a,e,i,o,u); Echo Usuarios.$estatus_desc[A]; ?>

Objetos

Estructuras de control if <?php If ($error != ;{ echo Mensaje error: $error; } elseif ($contador == 0){ echo No hay datos.; } else{ echo Hay contador de datos.; } ?>

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Estructuras de control switch <?php switch ($estatus) { case A $titulo = Usuarios activos; Break; case B: $titulo = Usuarios inactivos; Break; default: $titulo = Estatus incorrecto; } ?> Sesiones Las sesiones sirven para pasr valores de una pagina a otras. No es mtodo seguro para sustituir un sistema de autentificacin. <?php session_start(); session_register(nombre); session_register(edad); $nombre = Fulano de Tal; $edad = 30; ?> Objetos Un objeto empaqueta propiedades y mtodos (variables y funciones). Respecto a PHP4, en PHP5 se cambia la sintaxis para los objetos y mejora el manejo de estos. <?php Class Usuario { Public $nombre; Public $edad Public function cletras() { Retturn strlen ($nombre); } } ?>

Adobe Flex

Lenguaje y herramientas para el desarrollo web


JSP JSP es un acrnimo de Java Server Pages, que en castellano vendra a decir algo como Pginas de Servidor Java. Es, pues, una tecnologa orientada a crear pginas web con programacin en Java. Esta tecnologa es un desarrollo de la compaa Sun Microsystems. La Especificacin JSP 1.2 fue la primera que se liber y en la actualidad est disponible la Especificacin JSP 2.1. Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las pginas JSP estn compuestas de cdigo HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual.

Motor JSP El motor de las pginas JSP est basado en los servlets de Java -programas en Java destinados a ejecutarse en el servidor-, aunque el nmero de desarrolladores que pueden afrontar la programacin de JSP es mucho mayor, dado que resulta mucho ms sencillo aprender que los servlets.

Java Servlet Los servlets, son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refera a pequeos programas que se ejecutan en el contexto de un navegador web. Por contraposicin, un servlet es un programa que se ejecuta en un servidor. El uso ms comn de los servlets es generar pginas web de forma dinmica a partir de los parmetros de la peticin que enve el navegador web.

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Principales caractersticas Conjunta el poder de Java en el servidor y la flexibilidad de HTML (HyperTextMarkup Language) en el browser. No slo se puede utilizar HTML, sino tambin XML ( eXtensibleMarkupLanguage) o WML (WirelessMarkupLanguage). Hace ms fcil reusar componentes como JavaBeans y Enterprise JavaBeans los cualesrealizan tareas ms especficas. Forma parte integral de Java 2 Enterprise Edition (J2EE). Su funcin es saber cmo procesar una solicitud para crear una respuesta. Soporta contenido dinmico que refleja las condiciones del mundo real. Existe independencia entre la parte del diseo (interfaz) y la lgica (programa).

Requisitos de instalacin Nuestro primer paso es descargar el software que implementa las especificaciones Java Servlet 2.1 o 2.2 y Java Server Pages 1.0 1.1. Podemos obtener una versin gratuita de Sun, conocida como "JavaServer Web Development Kit" (JSWDK). Usa plataformas Unix y Windows. Instalar un servidor Web con Capacidad para Servlets Nuestro siguiente paso es obtener e instalar un servidor Web que soporte servlets Java, o instalar el paquete Servelt en nuestro servidor Web existente. Aqu estn algunas de las opciones ms populares: Apache Tomcat. Tomcat es la implementacin de referencia oficial para las especificaciones Servlet 2.2 y JSP 1.1. Puede ser usado como pequeo servidor para probar pginas JSP y servlets, o puede integrarse en el servidor Web Apache. Tomcat, al igual que el propio Apache es gratuito. JavaServer Web Development Kit (JSWDK). El JSWDK es la implementacin de referencia oficial para las especificaciones Servlet 2.1 y JSP 1.0. Es gratuito y potente, pero necesita un poco de esfuerzo para instalarlo y configurarlo. AllaireJRun. JRun es un motor servelt y JSP que puede conectarse dentro de los servidores Netscape Enterprise o FastTrack, de los servidores Web IIS, Microsoft Personal Web Server, viejas versiones de Apache, OReillysWebSite, o StarNineWebSTAR. New AtlantasServletExec. ServletExec es un rpido motor de servlets y pginas JSP que puede ser conectado dentro de los servidores web ms populares para Solaris, Windows, MacOS, HP-UX y Linux. Gefion'sLiteWebServer (LWS). LWS es un pequeo servidor Web gratuito que soporta Servlets versin 2.2 y JSP 1.1. Suns Java Web Server. Este servidor est escrito enteramente en Java y fue uno de los primeros servidores en soportar completamente las especificaciones servlet 2.1 y JSP 1.0.

Adobe Flex

Lenguaje y herramientas para el desarrollo web


JDK Cuando usamos nuestro navegador para solicitar una pgina JSP desde el servidor, ste debe crear y compilar un servlet. El servidor jswdk no contiene un compilador ni una mquina virtual. Por lo tanto, si no lo tenemos ya instalado, debemos instalar el JDK para que el servidor lo use para compilar y ejecutar el servlet.

Licenciamiento Java en general es GPL, por lo que no tienes que hacer pago por desarrollar en JSP ni licencias ni nada por el estilo. JSP es gratuito. Curva de aprendizaje JSP es un poco ms complejo ya que exige el conocimiento de las especificaciones y del lenguaje JAVA. Plataforma de desarrollo JSP puede funcionar en cualquier plataforma.

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Conceptos Bsicos de Adobe Flex

Adobe Flex (hasta 2005 Macromedia Flex) es un trmino que agrupa una serie de tecnologas publicadas desde Marzo de 2004 por Macromedia para dar soporte al despliegue y desarrollo de Aplicaciones Enriquecidas de Internet, basadas en su plataforma propietaria Flash. Los programadores tradicionales de aplicaciones ven como un desafo adaptar la metfora de la animacin sobre la plataforma con la cual fue originalmente construido Flash. Flex minimiza elegantemente este problema proveyendo un flujo de trabajo y un modelo de programacin que es familiar a los desarrolladores de aplicaciones. Flex fue inicialmente liberado como una aplicacin de la J2EE o biblioteca de etiquetas JSP que compilaba el lenguaje de marcas Flex (MXML) y ejecutaba mediante ActionScript aplicaciones Flash (archivos SWF binarios). Versiones posteriores de Flex soportan la creacin de archivos estticos que son compilados, y que pueden ser distribuidos en lnea sin la necesidad de tener una licencia de servidor. El objetivo de Flex es permitir a los desarrolladores de aplicaciones web construir rpida y fcilmente Aplicaciones de Internet Ricas, tambin llamadas RIAs. En un modelo multi-capa, las aplicaciones Flex son el nivel de presentacin.

Flex pone en relieve el desarrollo de Interfaces grficas de usuario usando un lenguaje XML llamado MXML. Flex tiene varios componentes y caractersticas que aportan funcionalidades tales como Servicios Web, objetos remotos, arrastrar y soltar, columnas ordenables, grficas, efectos de animacin y otras interacciones simples. El cliente solo carga la aplicacin una vez, mejorando as el flujo de datos frente a aplicaciones basadas en HTML (PHP, ASP, JSP, CFMX), las cuales requieren de ejecutar plantillas en el servidor para cada accin. El lenguaje y la estructura de archivos de Flex buscan el desacoplamiento de la lgica y el diseo.

El servidor Flex tambin acta como un gateway permitiendo al cliente comunicarse con servicios web XML y objetos remotos (tales como Coldfusion CFCs, clases Java, y cualquiera que soporte el formato de mensajes de acciones).

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Tipos de datos

Boolean (Booleano) El tipo de datos booleano consta de dos valores: true y false. Ningn otro valor es vlido para variables de tipo booleano. El valor predeterminado de una variable booleana declarada pero no inicializada es false.

Int (entero) El tipo de datos int se almacena internamente como un entero de 32 bits y consta del conjunto de enteros entre -2,147,483,648 -2(31) a 2,147,483,647 ((2)31-1) ambos incluidos. Si la variable no va a usar nmeros de coma flotante, es ms rpido y eficaz utilizar el tipo de datos int en lugar del tipo de datos Number.

Uint (enteros sin signo) El tipo de datos uint se almacena internamente como un nmero entero sin signo de 32 bits y consta del conjunto de enteros entre 0 y 4,294,967,295 ((2) 32-1), ambos incluidos. El tipo de datos uint debe utilizarse en circunstancias especiales que requieran enteros no negativos. Por ejemplo, se debe utilizar el tipo de datos uint para representar valores de colores de pixeles, ya que el tipo de datos int tiene un bit de signo interno que no es apropiado para procesar valores de colores. Para valores enteros ms grandes que el valor uint mximo, se debe utilizar el tipo de datos Number, que puede procesar valores enteros de 53 bits. El valor predeterminado para variables con tipo de datos uint es 0.

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Number (nmero) Number representa enteros, enteros sin signo y nmeros de coma flotante. Sin embargo, para maximizar el rendimiento se recomienda utilizar el tipo de datos Number nicamente para valores enteros que ocupen ms de los 32 bits que puedan almacenar los tipos de datos int y uint o para nmeros de coma flotante.

Null (nulo) El tipo de datos Null tiene un nico valor: null. ste es el valor predeterminado para el tipo de datos String y para todas las clases que definen tipos de datos complejos, incluida la clase Object. Ninguno de los dems tipos de tados simples, como Boolean, Number, int y uint, contienen el valor null. Flash player convertir el valor null en el valor predeterminado apropiado si se intenta asignar null a variables de tipo Boolean, Number, int o uint.

String (cadena) Las cadenas se almacenan internamente como caracteres. Una operacin sobre un valor de cadena devuelve una nueva instancia de la cadena. El valor predeterminado de una variable declarada con el tipo de datos String es null. El valor null no es lo mismo que la cadena vaca (), aunque ambos representan la ausencia de caracteres.

Void (vaco) El tipo de datos void tiene un nico valor: undefined. En ActionScript 3.0 , el valor predeterminado de las instancias de Object es null. Si se intenta asignar el valor undefined a una instancia de la clase Object, Flash Player convertir el valor a null. Solo se puede asignar un valor undefined a variables que no tienen tipo de dato. Las variables sin tipo de datos son variables que no tienen anotacin de tipo de dato o utilizan el smbolo de (*) como anotacin del tipo de dato. Solo se puede usar void como anotacin de tipo devuelto. Adobe Flex

Lenguaje y herramientas para el desarrollo web

Object (objeto) El tipo de datos Object se define mediante la clase Object. La clase Object constituye la clase base para todas las definiciones de clase en ActionScript. La versin del tipo de datos en ActionScript 3.0 difiere de las versiones anteriores en tres aspectos. En primer lugar, el tipo de datos Object ya no es el tipo de datos predeterminado que se asignan a las variables sinanotacin de tipo de dato. En segundo lugar, el tipo de datos Object ya no incluye el valor undefined que se utilizaba como valor predeterminado de las instancias Object. Por ltimo en ActionScript 3.0, el valor predeterminado de las instancias de la clase Object es null.

Adobe Flex

Lenguaje y herramientas para el desarrollo web Controles de Flujo

Condicionales

ActionScript 3.0 proporciona tres sentencias condicionales bsicas que se pueden utilizar para controlar el flujo del programa.

if .. else if .. else if interruptor

if .. else

El if .. else condicional le permite comprobar una condicin y ejecutar un bloque de cdigo si dicha condicin existe, o ejecutar un bloque de cdigo alternativo si la condicin no existe. Por ejemplo, el siguiente cdigo comprueba si el valor de x es superior a 20 y genera una funcin trace () si lo hace, o genera un seguimiento de diferentes () si no lo hace: if (x> 20) { trace ("x es> 20"); }

Adobe Flex

Lenguaje y herramientas para el desarrollo web


ms { trace ("x es <= 20"); } Si usted no desea ejecutar un bloque de cdigo alternativo, puede utilizar la sentencia if sin la sentencia else.

if .. else if

Puede probar ms de una condicin con el if .. else if condicional. Por ejemplo, el siguiente cdigo no slo comprueba si el valor de x es superior a 20, sino que tambin comprueba si el valor de x es negativo: if (x> 20) { trace ("x es> 20"); } else if (x <0) { trace ("x es negativo"); }

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Si uno o ms si la declaracin es seguida por una sola sentencia, la declaracin no tiene por qu ser encerradas entre llaves. Por ejemplo, el siguiente cdigo no utiliza llaves:

if (x> 0) trace ("x es positivo"); else if (x <0) trace ("x es negativo"); ms trace ("x es 0");

No obstante, Adobe recomienda utilizar siempre llaves, ya que un comportamiento inesperado puede ocurrir si las declaraciones se aadi ms tarde a una sentencia condicional que no aparecen entre llaves. Por ejemplo, en el siguiente cdigo el valor de positiveNums se incrementa en 1 si la condicin se evala como verdadera: var x: int; var positiveNums: int = 0; if (x> 0) trace ("x es positivo"); positiveNums + +; trace (positiveNums); / / 1

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Switch

La sentencia switch resulta til si hay varios hilos de ejecucin que dependen de la misma expresin de condicin. Proporciona funcionalidad similar a una larga serie de sentencias if..else if, pero es ms fcil de leer. En lugar de probar una condicin para un valor booleano, la sentencia switch evala una expresin y utiliza el resultado para determinar el bloque de cdigo que debe ejecutarse. Los bloques de cdigo empiezan por una sentencia case y terminan con una sentencia break. Por ejemplo, la siguiente sentencia switch imprime el da de la semana en funcin del nmero de da devuelto por el mtodo Date.getDay(): var someDate:Date = new Date(); var dayNum:uint = someDate.getDay switch(dayNum) {{ case 0: trace("Sunday"); break; case 1: trace("Monday"); break; case 2: trace("Tuesday"); break; case 3: trace("Wednesday");

Adobe Flex

Lenguaje y herramientas para el desarrollo web


break; case 4: trace("Thursday"); break; case 5: trace("Friday"); break; case 6: trace("Saturday"); break; default: trace("Out of range"); break; } }

Ciclos
Adobe Flex

Lenguaje y herramientas para el desarrollo web

Las sentencias de bucle permiten ejecutar un bloque especfico de cdigo repetidamente utilizando una serie de valores o variables. Adobe recomienda escribir siempre el bloque de cdigo entre llaves ({}). Aunque se le puede omitir las llaves si el bloque de cdigo contiene una sola sentencia, esta prctica no se recomienda por la misma razn por la que no se recomienda para los condicionales: aumenta la probabilidad de que las sentencias aadidas ms adelante se excluyan accidentalmente del bloque de cdigo. Si posteriormente se aade una sentencia que se desea incluir en el bloque de cdigo, pero no se aaden las llaves necesarias, la sentencia no se ejecutar como parte del bucle.

For

El bucle for permite repetir una variable para un rango de valores especfico. Una sentencia for requiere de tres expresiones: una variable que se establece con un valor inicial, una sentencia condicional que determina cundo termina la reproduccin en bucle y una expresin que cambia el valor de la variable con cada bucle. Por ejemplo, el siguiente cdigo realiza cinco bucles. El valor de la variable i comienza en 0 y termina en 4, mientras que la salida son los nmeros 0 a4, cada uno de ellos en su propia lnea. Var i:int; for (i=0; i<5; i++) { trace(i): }

10

Adobe Flex

Lenguaje y herramientas para el desarrollo web


For..in

El bucle for..in recorre las propiedades de un objeto o los elementos de una matriz. Por ejemplo, se puede utilizar un bucle for..in para repetir las propiedades de un objeto genrico (las propiedades de un objeto no se guardan en ningn orden concreto, por lo que pueden aparecer en un orden aparentemente impredecible):

var myObj:Object={x:20,y:30}; for (var i;String in myObj) { trace(I + : + myObj[i]); } //salida //x:20 //y:30

Tambin se pueden recorrer los elementos de una matriz: Var myArray=[one,two,three]; For (var i:String in myArray) { trace(myArray[i]); } //salida //one //two //three

11

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Lo que no se puede hacer es repetir las propiedades de un objeto si se trata de una instancia de una clase definida por el usuario, a no ser que la clase sea una clase dinmica. Incluso con instancias de clases dinmicas, slo se pueden repetir las propiedades que se aaden dinmicamente.

For each..in

El bucle for each..in recorre los elementos de una coleccin, que puede estar formada por las etiquetas de un objeto XML XMLList, los valores de las propiedades de un objeto o los elementos d una matriz. Por ejemplo, como se indica en el siguiente fragmento, se puede utilizar un bucle for each..in para recorrer las propiedades de un objeto genrico, pero a diferencia del bucle for..in, la variable de iteracin de un bucle for each..in contiene el valor de la propiedad en lugar del nombre de la propiedad:

var myObj:Object={x:20, y:30}; for each (var num in myObj) { trace(num); } //salida //20 //30

Se puede recorrer un objeto XML o XMLList, como se indica en el siguiente ejemplo:

12

Adobe Flex

Lenguaje y herramientas para el desarrollo web


var myXML:XML=<users> <fname>Jane</fname> <fname>Susan</fname> <fname>John</fname> </users>; for each (var tem in myXML.fname) { trace(item); } /*salida Jane Susan John */

13

Adobe Flex

Lenguaje y herramientas para el desarrollo web

While

El bucle while es como una sentencia if que se repite con tal de que la condicin sea true. Por ejemplo, el cdigo siguiente produce el mismo resultado que el ejemplo del bucle for:

var i:int=0; while (i<5) { Trace(i); i++; }

Una desventaja que presenta el uso de los bucles while frente a los bucles for es que es ms probable escribir un bucle infinito con bucles while. El cdigo de ejemplo de bucle for no se compila si se omite la expresin que aumenta la variable de contador, mientras que el ejemplo de bucle while s se compila si se omite dicho paso. Sin la expresin que incrementa i, el bucle se convierte en un bucle infinito.

14

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Do..while

El bucle do..while es un bucle while que garantiza que el bloque de cdigo se ejecuta al menos una vez, ya que la condicin se comprueba despus de que se ejecute el bloque de cdigo. En el siguiente cdigo se muestra un ejemplo sencillo de bucle do..while que genera un resultado aunque la condicin no se cumpla:

var i:int=5; do { trace(i); i++; }while(i<5); //salida:5

15

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Funciones

Las funciones son bloques de cdigo que realizan tareas especficas y pueden reutilizarse en el programa.

Invocacin de funciones

Para llamar a una funcin se utiliza su identificador seguido del operador parntesis (()).

Se puede utilizar el operador parntesis para escribir los parmetros de funcin que se desea enviar a la funcin. Por ejemplo, la funcin trace(), que es una funcin de nivel superior de la API de Flash Player se usa por todo el manual: trace(Use trace to help debug your script);

Si se llama una funcin sin parmetros, hay que utilizar un par de parntesis vacos. Por ejemplo, se puede utilizar el mtodo Math.random(), que no admite parmetros, para generar un nmero aleatorio: var randomNum:Number=Math.random();

Hay dos maneras de definir una funcin en ActionScript 3.0: se puede utilizar una sentencia de funcin o una expresin de funcin. La tcnica que se elija depender de si se prefiere un estilo de programacin ms esttico o ms dinmico. Si se prefiere la programacin esttica, o en modo estricto, se deben definir las funciones con sentencias de funcin. Las funciones deben definirse con expresiones de funcin si existe la necesidad especfica de hacerlo. Las expresiones de funcin suelen usar en programacin dinmica (en modo estndar).

16

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Sentencias de Funcin

Las sentencias de funcin son la tcnica preferida para definir funciones en modo estricto. Una sentencia de funcin empieza con la palabra clave function, seguida de: El nombre de la funcin Los parmetros, en una lista delimitada por comas y escrita entre parntesis El cuerpo de la funcin (es decir, el cdigo ActionScript que debe ejecutarse cuando se invoca la funcin), escrito entre llaves.

Por ejemplo, el cdigo siguiente crea una funcin que define un parmetro y despus invoca la funcin con la cadena hello como valor del parmetro:

Funcin traceParameter(aParam:String) { Trace(aParam); } traceParameter(hello);//hello

17

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Devolucin de valores de funciones

Para devolver un valor de la funcin se debe utilizar la sentencia return seguida de la expresin o el valor literal que se desea devolver. Por ejemplo, el cdigo siguiente devuelve una expresin que representa el parmetro:

function doubleNum(baseNum:int):int { return(baseNum*2); }

Tenga en cuenta que la sentencia return finalize la funcin, por lo que las sentencias que estn por debajo de una sentencia return no se ejecutarn, como se indica a continuacin: function doubleNum(baseNum:iint):int { return (baseNum * 2); trace(after return); //Esta sentencia trace no se ejecutar. }

En modo estricto se debe devolver un valor del tipo apropiado si se elige especificar un tipo devuelto. Por ejemplo, el cdigo siguiente genera un error en modo estricto porque no devuelve un valor vlido.

Function doubleNum(baseNum:int):int; { Trace(after return);}

18

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Funciones anidadas

Es possible anidar funciones, lo que significa que pueden declararse funciones dentro de otras funciones. Una funcin anidada slo est disponible dentro de su funcin principal, a menos que se pase una referencia a la funcin a cdigo externo. Por ejemplo, el cdigo siguiente declara dos funciones anidadas dentro de la funcin getNameAndVersin():

function getNameAndVersin():String { function getVersion():String { return 9; } function getProductName():String { return Flash Player; } return (getProductName() + + getVersion()); trace (getNameAndVersin());//Flash Player 9

19

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Parmetros de funcin

ActionScript 3.0 proporciona funcionalidad para los parmetros de funcin que puede resultar novedosa para los programadores que empiecen a estudiar el lenguaje. Aunque la idea de pasar parmetros por valor o por referencia debe resultar familiar a la mayor parte de los programadores, el objeto arguments y el parmetro(rest) sern nuevos para la mayora.

Pasar argumentos por valor o por referencia

En muchos lenguajes de programacin, es importante comprender la diferencia entre pasar argumentos por valor o por referencia; esta diferencia puede afectar a la manera de disear el cdigo. Al pasar por valor, el valor del argumento se copia en una variable local para usarlo en la funcin. Al pasar por referencia, slo se pasa una referencia al argumento, en lugar del valor real. No se realiza ninguna copia del argumento real. En su lugar, se crea una referencia a la variable pasada como argumento y se asigna dicha referencia a una variable local para usarla en la funcin. Como una referencia a una variable externa a la funcin, la variable local proporciona la capacidad de cambiar el valor de la variable original. En ActionScript 3.0, todos los argumentos se pasan por referencia, ya que todos los valores se almacenan como objetos. No obstante, los objetos que pertenecen a los tipos de datos simples, coomo Boolean, Number, int, uint y String, tienen operadores especiales que hacen que se comporten como si se pasarn por valor. Por ejemplo, el cdigo siguiente crea una funcin denominada passPrimitives() que define dos parmetros denominados xParam y yParam, ambos de tipo int. Estos parmetros son similares a variables locales declaradas en el cuerpo de la funcin passPrimitives().

20

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Cuando se llama a la funcin con los argumentos xValues e yValue, los parmetros xParam e yParam se inicializan con referencias a los objetos int representados por xValues e yValue. Como los argumentos son valores simples, se comportan como si se pasarn por valor. Aunque xParam e yParam slo contienen inicialmente referencias a los objetos xValue e yValue, los cambios realizados a las variables en el cuerpo de la funcin generan nuevas copias de los valores en la memoria. Function passPrimitives(xParam:int, yParam:int):void { xParam++; yParam++; trace(xParam, yParam); }

var xValue:int=10; vary Value:int=15; trace(xValue, yValue);//10 15 passPriimitives(xValue, yValue);//11 16 trace(xValue, yValue);//10 15 }

En la function passPrimitives(), los valores de xParam e yParam se incrementan, pero esto no afecta a los valores de xValue e yValue, como se indica en la ltima sentencia trace. Esto es as aunque se asigne a los parmetros los mismos nombres que a las variables, xValue e yValue, ya que dentro de la funcin xValue e yValue sealaran nuevas ubicaciones de la memoria que existen por separado de las variables externas a la funcin que tienen el mismo nombre.

21

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Todos los dems objetos (es decir, los objetos que no pertenecen a los tipos de datos simples) se pasan siempre por referencia, ya que esto ofrece la capacidad de cambiar el valor de la variable original. Por ejemplo, el cdigo siguiente crea un objeto denominado objVar con dos propiedades, x e y. El objeto se pasa como un argumento a la funcin passByRef(). Como el objeto no es un tipo simple, no slo se pasa por referencia, sino que tambin mantiene como una referencia. Esto significa que los cambios realizados en los parmetros dentro de la funcin afectarn a las propiedades del objeto fuera de la funcin. function passByRef(objParam:Object):void { objParam.x++; objParam.y++; trace(objParam.x, objParam.y); } V var objVar:Object={x:10,y:15}; trace(objVar.x,objVar.y);//10 15 passByRef(objVar);//11 16 trace(objVar.x,objVar.y);//11 16

el parmetro objParam hace referencia al mismo objeto que la variable objVar global. Como se puede ver en las sentencias trace del ejemplo, los cambios realizados en las propiedades x e y del objeto objParam se reflejan en el objeto objVar.

22

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Valores predeterminados de los parmetros

En ActionScript 3.0 se incluyen como novedad la capacidad de declarar valores predeterminados de parmetros para una funcin. Si una llamada a una funcin con valores predeterminados de parmetros omite un parmetro con valores predeterminados, se utiliza el valor especificado en la definicin de la funcin para ese parmetro. Todos los parmetros con valores predeterminados deben colocarse al final de la lista de parmetros. Los valores asignados como valores predeterminados deben ser constantes de tiempo de compilacin. La existencia de un valor predeterminado para un parmetro convierte de forma efectiva a ese parmetro en un parmetro opcional. Un parmetro sin un valor predeterminado se considera un parmetro requerido.

23

Adobe Flex

Lenguaje y herramientas para el desarrollo web Acceso a datos


Este es el caso ms sencillo, acceder a datos almacenados en el cliente. Esto nos puede resulta til para integrar datos en la aplicacin. Han de cumplirse dos condiciones para que el siguiente cdigo nos resulte de utilidad:

Que los datos no cambien. Que no ocupen un gran volumen.

Desventajas al emplear este mtodo


Falta de tipificacin (el compilador desconoce el tipo de dato), que se transforma en reduccin de rendimiento. Aumento del tamao de los ficheros SWF. Para modificar los datos habra que recompilar los ficheros SWL.

Descripcin La etiqueta <mx:Model> integra las estructuras XML dentro de la aplicacin durante la compilacin y se almacenan en el cliente.

24

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Al ejecutar el siguiente cdigo, obtendremos un resultado similar al de la siguiente imagen.

Carga de datos del lado del cliente Este ejemplo se emplea para almacenar datos en el cliente. Una de las diferencias est en la necesidad de extraer el cdigo XML a un fichero externo.

Desventajas al emplear este mtodo Falta de tipificacin (el compilador desconoce el tipo de dato), que se transforma en reduccin de rendimiento. Aumento del tamao de los ficheros SWF. Para modificar los datos habra que recompilar los ficheros SWL. Descripcin La etiqueta <mx:Model> integra las estructuras XML dentro de la a plicacin durante la compilacin y se almacenan en el cliente.

25

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Al ejecutar el siguiente cdigo, obtendremos un resultado similar al de la siguiente imagen.

Fichero requerido:
assets/datosLocales.xml

26

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Si bin este ejemplo mejora la separacin de datos, continua sin ser la solucin ideal. En el siguiente post veremos cmo mejorarlo.

Carga de datos del lado del cliente Concretamente, se crea una estructura de datos mediante la clase Usuario que permite tipificar y separar los datos de la interfaz de usuario. Desventajas al emplear este mtodo Aumento del tamao de los ficheros SWF. Para modificar los datos habra que recompilar los ficheros SWL. Descripcin El evento del sistema creationComplete se enva una vez que un elemento se ha creado, visualizado y est listo para usar. En este caso, al tratarse de la etiqueta <mx:Application> que es el contenedor de nivel superior, el evento se crear cuando finalice la carga de todos los elementos.

27

Adobe Flex

Lenguaje y herramientas para el desarrollo web Seguridad en adobe flex

Autenticar el acceso a los servicios Por lo general los servicios de datos requieren la autenticacin del usuario antes de permitir el acceso a los servicios. Servicios de PHP, BlazeDS, y ColdFusion que proporcionan acceso a travs del protocolo HTTP puede requerir autenticacin adicional. En algunos casos, este tipo de servicios requieren de HTTP y la autenticacin remota. Flash Builder proporciona una opcin para la autenticacin del servicio cuando se est haciendo lo siguiente: Configuracin del tipo de cambio de una operacin Utilizacin de la interfaz de operacin de prueba Cuando se especifica requiere autenticacin, Flash Builder abre el cuadro de dilogo Servicio de autenticacin. Dependiendo del tipo de servicio que est accediendo, se puede especificar la autenticacin bsica o autenticacin remota. La autenticacin bsica La autenticacin bsica permite el acceso a los servicios de HTTP y la Web. El nombre de usuario y contrasea para acceder a estos servicios. Especifique Recordar usuario y contrasea si desea Flash Builder para usar las credenciales especificadas durante la sesin. Autenticacin remota Autenticacin remota proporciona acceso a los servicios objeto remoto. Los servicios de objetos remotos son servicios que prestan como objetos remotos utilizando ColdFusion, PHP, BlazeDS, o Adobe LiveCycle Data Services (LCDS). Flash Builder no ofrece la interfaz de autenticacin de inicio de sesin a distancia para los proyectos que no implementan los servicios de objetos remotos. El nombre de usuario y contrasea para acceder a los servicios objeto remoto. Especifique Recordar usuario y contrasea si desea Flash Builder para usar las credenciales especificadas durante la sesin.

28

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Configurar los parmetros de entrada a una operacin Para la tipificacin del lado del cliente, puede configurar los parmetros de entrada a las operaciones disponibles en el servicio de datos. El procedimiento siguiente se supone que se ha conectado a un servicio de datos en Flash Builder, y el servicio de datos con operaciones que requieren los parmetros configurables de entrada. 1.- En los datos / Servicios de ver: seleccionar una operacin que contiene los parmetros configurables de entrada. Desde el men contextual de la operacin, seleccione Configuracin de tipos de entrada. 2.- En la entrada Configurar tipos de dilogo: para cada argumento de la operacin, seleccione un tipo de datos de la lista de tipos disponibles. Haga clic en Aceptar. Si previamente ha definido los tipos de datos personalizados a cambio de los servicios, los tipos estn disponibles para su seleccin. Para la tipificacin del lado del servidor, el servicio especifica el tipo de datos para los parmetros de entrada.

Privacidad La privacidad es un aspecto importante de la seguridad global. proporcionan muy poca informacin que pudiera revelar algo acerca de un usuario (o su equipo). Flash Player no proporciona informacin personal sobre los usuarios (tales como nombres, direcciones de correo electrnico y nmeros de telfono), o facilitar el acceso a otra informacin confidencial (como nmeros de tarjetas de crdito o informacin de la cuenta). Lo que Flash Player no proporciona es bsicamente hardware estndar y la informacin de configuracin de software que los autores podran utilizar para mejorar la experiencia del usuario en el entorno encontrado. La misma informacin que a menudo est disponible ya a partir del sistema operativo o navegador web. La informacin sobre el entorno del cliente que est disponible para la aplicacin incluye: Cadena de agente de usuario, que normalmente se identifica el tipo de navegador y sistema operativo de incorporacin de los clientes Las capacidades del sistema, tales como el lenguaje o la presencia de un descodificador de MP3 Adobe Flex

29

Lenguaje y herramientas para el desarrollo web

Acerca de cajas de arena El tipo de caja de arena indica el tipo de zona de seguridad en la que el archivo SWF est en funcionamiento. En Flash Player, todos los archivos SWF (y archivos HTML, a los efectos de SWF a HTML scripting) se colocan en uno de los cuatro tipos de recinto de seguridad: Remoto Todos los archivos de URL no locales se colocan en un entorno limitado remoto. Hay muchas cajas de arena, uno para cada uno de Internet (o Intranet) de dominio de los archivos que se cargan. local-con-sistema de archivos El recinto de seguridad por defecto para los archivos locales. Los archivos SWF de este entorno limitado no puede comunicarse con el Internet (o cualquier servidor) de ninguna manera-que no pueden acceder a los puntos finales de red con direcciones como las direcciones URL HTTP. Locales con acceso a red Archivo SWF de este entorno limitado pueden comunicarse a travs de la red, pero no pueden leer del sistema de archivos local. Local de confianza Este entorno no est restringido. Cualquier archivo local puede ser en este entorno limitado si se le da la autorizacin del usuario final. Esta autorizacin puede ser de dos tipos: de forma interactiva a travs del Administrador de configuracin o no interactiva a travs de un instalador ejecutable que crea archivos de configuracin de Flash Player en el ordenador del usuario. Puede determinar el tipo de entorno limitado actual mediante el sandboxType propiedad de la clase de seguridad, como muestra el siguiente ejemplo: <? xml version = "1.0" encoding = "UTF-8"?> <-! De seguridad / DetectCurrentSandbox.mxml -> <s: Aplicacin xmlns: fx = "http://ns.adobe.com/mxml/2009" xmlns: mx = "biblioteca: / / ns.adobe.com / flex / mx" xmlns: s = "biblioteca: / / ns.adobe.com / flex / chispa" creationComplete = "initApp ()"> <s:layout> Adobe Flex

30

Lenguaje y herramientas para el desarrollo web


<s:VerticalLayout/> </ s: Diseo> <fx:Script> <! [CDATA [ [Enlazables] privado mySandboxType var: String; initApp funcin privada (): void { mySandboxType = String (Security.sandboxType); } ]]></ fx: Script> <s:HGroup> <s:Label text="Sandbox Type: "/> <s:Label id="tb1" text="{mySandboxType}"/> </ s: HGroup> </ s: Application> Al compilar una aplicacin, tener cierto control sobre lo que la caja de arena es de aplicacin in Esta determinacin es una combinacin del valor de la el uso de la red opcin del compilador (el valor predeterminado es verdadero ) Y si el archivo SWF ha sido cargado por el cliente a travs de una conexin de red o como un archivo local. La siguiente tabla muestra cmo el tipo de pruebas es determinar: de seguridad del navegador Flash Player se puede clientes uno de los cuatro tipos siguientes: Incorporado Flash Player Versin de depuracin de Flash Player embebido Stand-alone Flash Player

31

Adobe Flex

Lenguaje y herramientas para el desarrollo web Manejo de errores


Un error en tiempo de ejecucin es algo que no funciona en el cdigo ActionScript y que impide la ejecucin de su contenido en Adobe Flash Player. Para asegurarse de que los usuarios pueden ejecutar correctamente el cdigo ActionScript. Excepcin de un error Excepcin: error que se produce cuando se ejecuta un programa y que el entorno en tiempo de ejecucin (es decir, Flash Player) no puede resolver por s mismo.

Tipos de errores

Errores en tiempo de compilacin Se producen cuando los problemas sintcticos del cdigo impiden crear la aplicacin. Errores en tiempo de ejecucin Se producen al ejecutar la aplicacin tras compilarla

Errores sincrnicos Son errores en tiempo de ejecucin que se producen cuando se invoca una funcin

Por ejemplo Cuando se intenta utilizar un mtodo especfico y el mtodo que se pasa al argumento no es vlido, Flash Player genera una excepcin. La mayor parte de los errores se producen de forma sincrnica (cuando se ejecuta la sentencia) y el flujo del control se pasa inmediatamente a la sentencia catch ms apropiada. En el cdigo siguiente se genera un error en tiempo de ejecucin porque no se llama al mtodo browse() antes de que el programa intente cargar un archivo: Adobe Flex

32

Lenguaje y herramientas para el desarrollo web

var fileRef:FileReference = new FileReference(); try { fileRef.upload("http://www.yourdomain.com/fileupload.cfm"); } catch (error:IllegalOperationError) { trace(error); // Error n 2037: Se ha llamado a las funciones en una secuencia // incorrecta o una llamada anterior // no se ha realizado correctamente. }

Error asincrnico

Son errores en tiempo de ejecucin, que se producen en varios puntos de la ejecucin de la aplicacin; generan eventos que son capturados por los detectores de eventos.

En las operaciones asincrnicas, una funcin inicia una operacin, pero no espera a que se complete. Se puede crear un detector de eventos de error para esperar a que la aplicacin o el usuario realicen alguna operacin si sta falla el error se captura con un detector de eventos y se responde al evento de error.

33

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Estrategias de gestin de errores Cuando la aplicacin no detecte un error, el cdigo se ejecutara correctamente a menos que se cree una lgica de errores.

Maneras de detectar errores:

1.- Utilizacin de sentencias try..catch..finally. Estas sentencias capturarn los errores cuando se produzcan. Se pueden anidar las sentencias en una jerarqua para capturar excepciones en varios niveles de la ejecucin del cdigo.

Creacin de objetos de error personalizados Se puede usar la clase Error para crear objetos de error personalizados, lo que permite hacer un seguimiento de operaciones especficas de la aplicacin que no estn incluidas en los tipos de error integrados. De este modo, se pueden usar sentencias try..catch..finally en los objetos de error personalizados. Especificacin de detectores y controladores de eventos para responder a eventos de error. Mediante esta estrategia, se pueden crear controladores de error globales que permiten gestionar eventos similares sin duplicar demasiado cdigo en bloques try..catch..finally. Adems, es ms probable capturar errores asincrnicos con este mtodo.

34

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Sesiones con Flex El tema de las sesiones es prcticamente el mundo de las aplicaciones web tradicionales. En Flex o Flash no he encontrado hasta ahora ningn caso en el que necesitase mantener una sesin con el servidor ya que tengo un cliente con estado. Es decir el cliente Flash/Flex no pierde la memoria entre peticin y peticin y sabe exactamente qu has pedido y donde lo tiene guardado. Por tanto el uso de sesiones es algo que deberamos ir dejando de lado.

En su momento tena sentido ya que las aplicaciones no mantenan el estado y cada peticin al servidor significaba el enviar el identificador de sesin para que el servidor supiese que cliente estaba pidiendo la informacin ya que esa informacin se guardaba en servidor.

Ahora la informacin sensible a la sesin, se guarda en el cliente, por tanto se mantiene activa mientras dura la sesin de ese cliente. Adems podemos usar Local Shared Objects para persistir informacin entre sesiones (si por ejemplo se quiere que el cliente flex recuerde el ltimo usuario ligado y lo escriba para facilitar al usuario el acceso).

An asi, y para aquellos apegado a antiguas prcticas, hay soluciones para acceder a una sesin. En OpenAMF tienes la clase RequestContext ( org.openamf.RequestContext).

35

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Concurrencia

La concurrencia es la propiedad de los sistemas que permiten que mltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre s. Los procesos concurrentes pueden ser ejecutados realmente de forma simultnea, slo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si slo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupndose de forma alternada en uno y otro proceso a pequesimos intervalos de tiempo. De esta manera simula que se estn ejecutando a la vez. Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros tambin en ejecucin, el nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programacin y conceptos que permitan hacer la concurrencia ms manejable.

Control de concurrencia La manera de controlar errores depender de los fines concretos para los que disee la aplicacin. Cuando intenta realizar una actualizacin pero se produce una excepcin, puede utilizar la informacin que proporciona la excepcin. private void UpdateDatabase() { try { this.northwindDataSetCustomersTableAdapter.Update(this.northwindDataSet.get_ Customers()); MessageBox.Show("Update successful"); } catch (DBConcurrencyException dbcx) { Adobe Flex

36

Lenguaje y herramientas para el desarrollo web


DialogResult response = MessageBox.Show(CreateMessage((NorthwindDataSet.CustomersRow) (dbcx.get_Row())), "Concurrency Exception", MessageBoxButtons.YesNo); ProcessDialogResult(response); } catch (Exception ex) { MessageBox.Show("An error was thrown while attempting to update the database."); } }

Para crear el mensaje que se mostrar al usuario private String CreateMessage(NorthwindDataSet.CustomersRow cr) { return "Database: " + GetRowData(GetCurrentRowInDB(cr), DataRowVersion.Default) + "\n" + "Original: " + GetRowData(cr, DataRowVersion.Original) + "\n" + "Proposed: " + GetRowData(cr, DataRowVersion.Current) + "\n" + "Do you still want to update the database with the proposed value?"; }

//-------------------------------------------------------------------------// This method loads a temporary table with current records from the database // and returns the current values from the row that caused the exception. //-------------------------------------------------------------------------private NorthwindDataSet.CustomersDataTable tempCustomersDataTable = new NorthwindDataSet.CustomersDataTable(); private NorthwindDataSet.CustomersRow GetCurrentRowInDB(NorthwindDataSet.CustomersRow RowWithError)

37

Adobe Flex

Lenguaje y herramientas para el desarrollo web


{ this.northwindDataSetCustomersTableAdapter.Fill(tempCustomersDataTable); NorthwindDataSet.CustomersRow currentRowInDb = tempCustomersDataTable.FindByCustomerID(RowWithError.get_CustomerID()); return currentRowInDb; }

//-------------------------------------------------------------------------// This method takes a CustomersRow and RowVersion // and returns a string of column values to display to the user. //-------------------------------------------------------------------------private String GetRowData(NorthwindDataSet.CustomersRow custRow, DataRowVersion RowVersion) { String rowData = ""; for (int i = 0; i < custRow.get_ItemArray().length; i++) { rowData = rowData + custRow.get_Item(i, RowVersion).ToString() + " "; } return rowData; }

38

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Para procesar la respuesta del usuario en el cuadro de mensaje

Agregue el cdigo siguiente debajo del cdigo agregado en la seccin anterior.

// This method takes the DialogResult selected by the user and updates the database // with the new values or cancels the update and resets the Customers table // (in the dataset) with the values currently in the database. private void ProcessDialogResult(DialogResult response) { switch (response) { case DialogResult.Yes: UpdateDatabase(); break; case DialogResult.No: northwindDataSet.Merge(tempCustomersDataTable); MessageBox.Show("Update cancelled"); break; } }

39

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Para resolver una infraccin de concurrencia

Ejecute el comando para actualizar la base de datos desde un bloque try/catch. Si se inicia una excepcin, compruebe la propiedad Row de la instruccin catch para determinar qu produjo la infraccin. Agregue cdigo para resolver el error basndose en las reglas de empresa de su aplicacin.

try { northwindDataSetCustomersTableAdapter.Update(northwindDataSet); } catch (DBConcurrencyException ex) { String customErrorMessage; customErrorMessage = "Concurrency violation\n"; customErrorMessage += ex.get_Row().get_Item(0).ToString();

// Add business logic code to resolve the concurrency violation... }

40

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Comandos utilizados para el control de transacciones

Commit Este comando da por concluida la transaccin actual y hace definitivos los cambios realizados liberando las filas bloqueadas. Slo despus de que se ejecute commit tendremos acceso a los datos modificados.

Rollback Este comando da por concluida la transaccin actual y deshace los cambios que se pudiesen haber producido en la misma, liberando las filas bloqueadas. Se utiliza especialmente cuando no se puede concluir una transaccin porque se han levantado excepciones.

Savepoint Se utiliza para poner marcas o puntos de salvaguarda al procesar transacciones. Se utiliza junto con rollback permitiendo deshacer cambios hasta los savepoint. El nmero de savepoint esta limitado a 5 por sesin pero lo podemos modificar con la siguiente sentencia:

Rollback implicito Este comando se ejecuta cuando un programa almacenado (procedimiento o funcin) falla y no se controla la excepcin que produjo el fallo. Pero si en el programa tenemos un commit estos cambios no sern deshechos.

Rollback to Deshace el trabajo realizado despus del punto indicado. Pero no se confirma el trabajo hecho hasta el savepoint. La transaccin no finaliza hasta que se ejecuta un comando de control de transacciones o hasta que finaliza la sesin.

41

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Os dejo a continuacin un ejemplo bastante completo de lo que seria el control de transacciones: create or replace procedure prueba (nfilas number) as begin savepoint ninguna; insert into tmp values ('primera fila'); savepoint una; insert into tmp values ('segunda fila'); savepoint dos; if nfilas=1 then rollback to una; else if nfilas=2 then rollback to dos; else rollback to ninguna; end if; commit; exception when other then rollback end prueba;

42

Adobe Flex

Lenguaje y herramientas para el desarrollo web


Compatibilidad con otros lenguajes

43

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Programacin Orientada a Objetos (POO)


La programacin orientada a objetos es simplemente un enfoque de la programacin, es decir, una forma de organizar el cdigo en un programa mediante objetos. ActionScript 3.0 proporciona a los programadores la flexibilidad de elegir el mejor enfoque para proyectos de mbito y complejidad variables. Usar un objeto orientado conlleva a la organizacin de un programa, lo que permite agruparlo en piezas particulares de informacin (por ejemplo, informacin de msica tal como: ttulo de lbum, ttulo de cancin, o nombre de artista) junto con funcionalidades comunes o acciones asociadas con la informacin (tal como "agregar cancin a la lista de reproduccin" o "reproducir todas las canciones de un artista"). Estos tems estn combinados en un nico tem, en un objeto (por ejemplo, un "lbum" o Pista de msica"). Ejemplo: La clase humano tiene caractersticas que lo definen y diversas funciones de lo que es capaz.

Si se tiene experiencia en otros lenguajes de POO, tal como Java o C++, ya se tiene la experiencia en aplicaciones escritas en POO. Objetos y clases En el corazn de la POO est el objeto, el cual encapsula su funcionalidad. Cuando un objeto est encapsulado, tiene cierta capacidad que lo expone a travs de propiedades y mtodos que se pueden usar, pero que oculta todos los dems detalles acerca de cmo se hizo lo que se hizo. Una clase es la definicin de un objeto. Un objeto es una instancia en particular de una clase. Cada clase de ActionScript est definida en su propio archivo de ActionScript (con la extensin de archivo .as).

44

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Programacin Orientada a Objetos


(POO)

La POO es una manera de organizar el cdigo en un programa para agruparlo dentro de un objeto individual con elementos que incluye informacin (propiedades) y funcionalidad (mtodos). Por ejemplo, informacin de msica tal como: ttulo de lbum, ttulo de cancin, o nombre de artista; junto con funcionalidades comunes o acciones asociadas con la informacin tal como "agregar cancin a la lista de reproduccin" o "reproducir todas las canciones de un artista". Estos tems estn combinados en un nico tem, en un objeto: un "lbum" o Pista de msica". Ejemplo: La clase humano tiene caractersticas que lo definen y diversas funciones de lo que es capaz.

Si se tiene experiencia en otros lenguajes de POO, tal como Java, ya se tiene la experiencia en aplicaciones escritas en POO. Objetos y Clases En el corazn de la POO est el objeto, el cual encapsula su funcionalidad. Cuando un objeto est encapsulado, tiene cierta capacidad que lo expone a travs de propiedades y mtodos que se pueden usar, pero que oculta todos los dems detalles acerca de cmo se hizo lo que se hizo. Una clase es la definicin de un objeto. Un objeto es una instancia en particular de una clase. Cada clase de ActionScript est definida en su propio archivo de ActionScript (con la extensin de archivo .as).

45

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Programacin Orientada a Componentes


(POC)
FLEX incluye un modelo de desarrollo basado en componentes que son usados para desarrollar aplicaciones e interfaces de usuario. Se pueden usar componentes visuales pre-construidos incluidos con FLEX, se pueden extender los componentes para aadir nuevas propiedades y mtodos y se pueden crear componentes cuando lo requiera la aplicacin. Componentes visuales: Size. Alto y largo del componente. Events. Aplicacin o accin del usuario que requiere una respuesta del componente. Styles. Caractersticas como tipo de letra, tamao de letra, alineacin. Behavors. Cambios visibles o audibles en el componente disparado por una aplicacin o accin del usuario. Skins. Clases que controlan la apariencia visual de los componentes.

Los componentes visuales son implementados como una jerarqua de clases en ActionScript. Por lo tanto, cada componente visual en la aplicacin es una instancia de clases ActionScript.

46

Adobe Flex

Lenguaje y herramientas para el desarrollo web

UIComponents La clase UIComponents es la clase base para todos los componentes visuales en FLEX. Propiedad doubleClickEnabled Tipo Boolean Descripcin Se establece un true cuando se pulsa y suelta el botn del mouse dos veces en una rpida sucesin sobre el componente. Se establece un true cuando el componente acepta el foco de entrada del teclado o mouse. El valor predeterminado es true. Si se configura enabled a false para un contenedor, FLEX atena el color del contenedor y de todos sus hijos as como la entrada de los bloques de usuario en el contenedor y sus hijos. La altura del componente en pixeles. Especifica el identificador del componente. Este valor identifica la instancia especfica del objeto y no debe contener ningn espacio en blanco o un caracter especial. Descripcin

enabled

Boolean

height id

Number String

Propiedad

Tipo

percentHeight

Number

La altura del componente como un porcentaje de su contenedor principal, o de las etiquetas <mx:Application>, la altura del navegador no devuelve un nmero si una anchura est basado en un porcentaje que nunca se estuvo previsto, o si una propiedad de anchura se estableci despus de la percentWidth. La altura del componente como un porcentaje de su contenedor principal, o de las etiquetas <mx:Application>, la duracin completa del navegador no devuelve un nmero si una anchura est basado en un porcentaje que nunca se estuvo previsto, o si una propiedad de anchura se estableci despus de la percentWidth. Especifica el selector de clase de estilo a aplicar a los componentes.

percentWidht

Number

styleName

String

47

Adobe Flex

Lenguaje y herramientas para el desarrollo web


toolTip String Especifica la cadena de texto que se muestra cuando el puntero del mouse est sobre ese componente.

Jerarqua de herencia para el subconjunto de componentes en FLEX

Botn (Button) Se crea un botn de control en una aplicacin de FLEX usando la etiqueta (tag) MXML <mx:Button>. Personalizacin de un botn: Agregar etiqueta de texto (label) Botn como cono en pantalla (icon) o ambos. Posicionamiento del label con respecto al icon.

Casilla de verficacin (CheckBox) El CheckBox se extiende del Button y as hereda todas sus propiedades, estilos, mtodos y eventos declarados en el botn de control. Para crear un CheckBox se utiliza la etiqueta MXML <mx:CheckBox>. Similar a como se trabaja con un botn, se agrega el evento escuchador click para detectar cuando un usuario da clic al control del CheckBox.

48

Adobe Flex

Lenguaje y herramientas para el desarrollo web

RadioButton El RadioButton es otro control que se extiende del Button, as que hereda todas sus propiedades, estilos, mtodos y eventos definidos por el control de botn. Para crear un RadioButton se utiliza la etiqueta MXML <mx:RadioButton>. El RadioButton consiste en un label y un crculo relleno cuando es seleccionado.

Label

Cuando se quiere mostrar una sola lnea de texto, se usa el Label. Resultado al crear un Label en FLEX para mostrar texto al usuario: Estilos de fuente: fontWeight (normal bold), fontSize (en pixeles) , fontStyle (normal italic).

Text El Text es casi idntico al Label, excepto que puede abarcar mltiples lneas. El Text de FLEX puede ser creado con la etiqueta MXML <mx:Text>. El Label est limitado a una sola lnea, as que si se necesita mostrar un bloque de texto, se puede usar el Text. En el Text se pueden usar las mismas propiedades y estilos del Label.

TextInput Control de etiqueta editable. TextInput es igual que la etiqueta <input type="text" /> en HTML. TextInput se pueden crear con la etiqueta <mx:TextInput> MXML. A continuacin, puede acceder al texto que el usuario ha escrito haciendo referencia a MyText-Field.text. Aqu est una solicitud completa MXML para demostrar el acceso el texto de un control TextInput:

49

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Esta aplicacin FLEX permite a un usuario de la aplicacin ingresar su nombre en el TextInput control. Cuando el usuario hace clic en el botn Enviar, un mensaje aparece y muestra el texto introducido por el usuario en el myTextField.

50

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Ejemplos prcticos

Cdigo <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" pageTitle="Instituto Tecnolgico de Villahermosa" skinClass="spark.skins.spark.ApplicationSkin" width="778"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <s:Panel width="726" id="panel" title="Ejemplos Prcticos con Flash Builder 4" horizontalCenter="-1" height="421" verticalCenter="-19"> <s:controlBarContent> </s:controlBarContent> <mx:Image x="233" y="-24" source="../img/fb_app.png" id="ico" scaleContent="true"/> <mx:Label text="Utilizando las libreras SPARK y MX" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="324" height="25" x="194.85" y="36.05" color="#0A7A92"/> <s:BorderContainer x="31.3" y="123.1" width="199" height="229" borderStyle="solid" cornerRadius="5"> <mx:Label text="&lt;s:Button&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="121" height="25" x="-1.3" y="10.1" color="#0A7A92"/>

51

Adobe Flex

Lenguaje y herramientas para el desarrollo web


<s:Button x="8.3" y="57.7" label="Ir"/> <mx:Text text="Botn creado utilizando la librera spark." x="85.35" y="45.6" height="56" width="103" textAlign="center"/> <mx:Label text="&lt;mx:Button&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="121" height="25" x="-1.35" y="104.75" color="#0A7A92"/> <mx:Button id="ingresar" label="Ir" labelPlacement="bottom" x="9.65" y="137.3" icon="@Embed(source='../img/logo_jaguar_tec - copia.png')"/> <mx:Text text="Botn creado utilizando la librera mx." x="85.35" y="156.6" height="56" width="103" textAlign="center"/> </s:BorderContainer> <s:BorderContainer x="257.5" y="121.45" width="199" height="229" borderStyle="solid" cornerRadius="5"> <mx:Label text="&lt;s:CheckBox&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="119" height="25" x="5.65" y="8.75" color="#0A7A92"/> <s:CheckBox label="Email me a copy of my order" selected="false" x="7" y="61"/> <mx:Label text="&lt;mx:CheckBox&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="142" height="25" x="9.65" y="118.75" color="#0A7A92"/> <mx:CheckBox label="Email me a copy of my order" selected="false" x="6" y="166"/> </s:BorderContainer> <s:BorderContainer x="486.05" y="121.45" width="199" height="229" borderStyle="solid" cornerRadius="5"> <mx:Label text="&lt;s:RadioButton&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="146" height="25" x="5.65" y="7.75" color="#0A7A92"/> <s:RadioButton label="Femenino" x="10" y="86"/> <s:RadioButton label="Masculino" x="10" y="62"/> <mx:Label text="&lt;mx:RadioButton&gt;" fontFamily="Georgia" fontWeight="bold" fontSize="14" textAlign="center" width="167" height="25" x="5.65" y="114.75" color="#0A7A92"/> <mx:RadioButton label="Femenino" x="10" y="177"/> <mx:RadioButton label="Masculino" x="10" y="152"/> </s:BorderContainer> </s:Panel> </s:Application>

52

Adobe Flex

Lenguaje y herramientas para el desarrollo web

TextInput

Cdigo

53

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Hola Mundo

Cdigo

Botn Papelera

54

Adobe Flex

Lenguaje y herramientas para el desarrollo web

CheckBox

Cdigo

RadioButton

Cdigo

55

Adobe Flex

Lenguaje y herramientas para el desarrollo web

Anexos

56

Adobe Flex

Lenguaje y herramientas para el desarrollo web

57

Adobe Flex

Potrebbero piacerti anche