Flash Player 10
Así es, se viene Flash Player 10, su nombre clave es ASTRO, aqui un video de presentación:
Via: Aral Balkan
Update para Flash CS3, Adobe AIR
En Adobe Labs está disponible un update para Flash CS3 Professional. Este permite publicar nuestras aplicaciones directamente a Adobe AIR (Apollo). Es beta aun pero vale la pena probarla
Variables globales en Actionscript 3
Actionscript 3, no tiene un acceso tan claro a _root como las versiones anteriores, y _global fue removido (por suerte), por lo tanto se puede llegar a complicar el uso de variables "globales", en realidad no era una buena práctica, pero era una opcion viable hacer esto:
_root.userType = "admin";
o lo siguente:
_global.userType = "admin";
Repito, no es la mejor opción pero era una salida.
La mejor opción para esto, en Actionscript 3, es utilizar el patrón de diseño Singleton, utilizando una class como la siguiente:
[Bindable]
public class GlobalVars {
// public vars:
public var user:String = "nombre de usuario";
public var userType:String = "admin";
// private vars
private static var instance:GlobalVars;
public function GlobalVars() {
}
public static function getInstance():GlobalVars {
if (instance == undefined) {
instance =new GlobalVars();
}
return instance;
}
}
}
Esta class no se debe instanciar dentro de ella está contenida la única instancia, y es pedida con el método getInstance(), así aseguramos la persistencia de las variables dentro de esta misma instancia.
Con esto desde cualquier class de nuestro proyecto, o bien desde algún fotograma del archivo fla podemos utilizar o modificar estas variables de la siguiente forma:
GlobalVars.getInstance().user = "soy el nuevo usuario"
En otra class:
Con esto tendremos variables globales en forma en forma ordenada, porque todas estarán declaradas en nuestra class, además podemos tener más de una class de estas, para almacenar distinto tipos de datos.
Esto sería como una mezcla de los Value Objects y los Model Locators en el Framework Cairngorm, solo que más simplificado para ser utilizado más facillmente.
Más de Flash CS3
Mi post anterior sonó medio "apocalíptico" sobre diseñadores y actionscript.. pero por lo que estuve viendo de Flash CS3 tiene una ventaja, haciendo dobleclick sobre cualquier instancia de componente de Flash en en escenario aparece algo parecido a esto:

Ahi vemos todos las partes del skin del componente para poder ser editado fácilmente... sin tanto código para cambiarlo de colores. Ningún secreto pero es buenisimo..
Flash CS3 ¿Como convivimos?
Como ya todos saben Adobe ha sacado la nueva version de Flash, CS3 (el resto de los programas de adobe también están incluidos en esta version).
La principal novedad que rescato es de Actionscript 3. Tiene mejoras excelentes, y cosas nuevas que empecé a utilizar en Flex 2 y aun descubriendo para Flash.
Lo que veo un poco complicado esa la convivencia Programador-Diseñador, AS3 tiene algunos cambios que pueden llegar a afectar a personas que no estén muy acostumbradas a trabajar con código:
- No se puede poner codigo sobre los objetos (no mas on(release) )
- No mas getURL (creo que lo primero qeu se aprende de Actionscript)
- No está ni _root ni _parent
- No mas #include
- Es más estricto, no se puede hacer un casting de variable sin declararlo
- Si se asignan propiedades a objetos nulos, da error
Bueno, eso entre otras cosas. Creo que con todo esto va a ser dificil que un diseñador flash utilice Actionscript 3, con esto pueden pasar dos cosas, o bien que los diseñadores se dediquen a la parte gráfica exclusivamente, separado del código del programador, o bien que el diseñador haga sus "programaciones" en AS1, o AS" y que luego el programador tenga que pasar todo a AS3.
Creo que de las dos opciones me quedo con lo primero, vamos a ver como evoluciona esto, como siempre digo, la tecnología es buenísima, ideal; el conflicto está en las personas que la deben utilizar.
Widgets Last.fm
Uno de mis sitios preferidos, last.fm está ofreciendo unos bonitos widgets en Flash para poner en sitios/blog con informacion de listas y artistas. Como no quiero modificar mucho el template del blog pongo un ejemplo acá:
|
|
Flex Module for Apache and IIS
En Adobe Labs han desarrollado un Módulo Flex para Apache e IIS. Este sirve para realizar una compilación en tiempo de ejecución de archivos MXML y Actionscript 3. Es decir que si colocamos, http://localhost/Main.mxml en nuestro browser veremos directamente el archivo SWF que se genera. Yo lo instalé, lo probé, realmente es muy rápido y funciona bien.
Está disponible para los siguiente servers:
- Apache 1.x/2.x (Windows, MacOS, o Linux)
- IIS version 5.1, 6, o 7 (Windows)
Además requiere:
- Flex SDK 2.0.1 o superior
- JRE 1.4.2 o superior
Flex: Cairngorm Framework
Estuve trabajando mucho con el Framework para desarrollo en Flex Cairngorm. Me parece muy útil para acelerar el desarrollo, pero principalmente para la organización, actualización y reutilización del código, también para la escalabilidad del proyecto.
Cairngorm está basado en el patrón de diseño Model View Controller y está compuesto por:
Model Locator:
Es donde se guardan todas las los datos de la aplicación (Value Object) estos VO son objetos Bindables, es decir, si cambian sus valores se actualiza en todos los lugares donde se utilicen.
View:
Las vistas de la aplicación, son componentes o grupos de componentes donde se encuentra la parte gráfica o visual.
Front Controller:
Recibe todos los eventos que luego son mapeados en los commands.
Command:Es donde está toda la logica, donde se procesan los eventos, se actualizan los VO.
Delegate:
Son llamados por los Commands y "selecciona" que service utilizar, que parámetros pasar, aqui están instanciados todos los services.
Service:
Están todas las llamadas a los servicios remotos, XML, WebServices, AMFPHP, etc.
Algunos recursos:
- Flex UI Design For Cairngorm
- Hello world cairngorm example
- http://www.cairngormdocs.org/
- Tutoriales de Made In Flex
Bueno, eso es todo por ahora, más adelante seguiré hablando de esto ya que me ha gustado mucho.
Mini-FAQ sobre Flex 2
Hace tiempo que vengo hablando sobre Flex 2, posteando ejemplos y otras cosas salteándome cualquier tipo de introducción. Ultimamente recibí varias consultas de desarrolladores que quieren conocer Flex, por eso armé algunas consultas comunes y armé este pequeño FAQ.
¿Para que sirve Flex?
Básicamente Flex está pensado para el desarrollo de RIAs (Rich Internet Applications), o sea aplicaciones Web con elementos de formulario, interacciones avanazadas, conexión a base de datos.
¿Como es la forma de trabajar en Flex?
En resumen, son archivos XML (MXML) donde se encuentran las llamadas a los componentes, estados, vistas, etc. Los componentes pueden ser desarrollados por Adobe, o componentes propios. La programacíón se realiza en Actionscript 3, y estos códigos se colocan en archivos .as.
¿Como se realiza la compilación de los proyectos?
Básicamente hay dos formas, en tiempo de ejecución en un Flex Server o con el SDK de Adobe. En el Flex Server se suben los archivos .mxml y desde el browser se visualizan archivos swf. Una analogía conocida sería, se suben PHP y se visualizan HTML, este servidor está basado en Java. La otra es compilando los mxml con el SDK y subir directamente los archivos SWF.
¿Donde puedo conseguir el SDK?
El SDK se puede bajar del sitio de Adobe y es gratis.
¿Hay alguna herramienta para desarrollar Flex 2?
Si, se puede utilizar el Flex Builder 2, este es un plug-in para Eclipse que tiene asistentes muy útiles para la codificación, y también tiene una interfáz para el desarrollo visual.
Para ejecutarse, del lado cliente, ¿se necesita lago más que el FLASH Player?
No, se necesita tener instalado el Flash Player 9. Y es compatible con cualquier navegador que tenga esa versión de Flash Player.
¿Que tecnología de servidor debo utlizar para trabajar con Flex y base de datos?
Cualquiera, PHP, ASP, .NET, JSP, cualquier tipo de tecnología de servidor, utilizando Flash Remoting, XML, WebServices, WebOrb, etc.
Bueno, eso es todo por ahora, es muy básico pero espero que sirva para aclarar algunas dudas ![]()
Cualquier cosa que quieran agregar o corregir no tienen mas que ponerlo en los comentarios.
Error con los uploads en Flash 8 y Flex 2
Después de pubicar el componente para upload he recibido muchos mensajes que me comunicaban el mismo error:
Error #2044: IOErrorEvent no controlado: text=Error #2038: Error de E/S de archivo.
Tiempo después, en un proyecto personal, experimenté yo mismo en un proyecto personal con Flex, por suerte uno de los mensajes que recibí, de David, me dió una solución:
El problema se encuentra en la configuración de mod_security del Apache que bloquea el acceso del archivo temporal creado en el servidor al script 'upload.php'. Así que si tienen acceso a la configuración del Apache tienen que configurar este módulo para que permita este tipo de upload.
En mi caso, como no tengo acceso a la configuración del Apache, tuve que buscar una solución "alternativa":
Hay que modificar el .htaccess para deshabilitar el mod_security agregando las siguientes lineas:
SecFilterScanPOST Off
Probé con esto y anda bien, espero que no traiga muchos problemas de seguridad, pero los uploads andan
Flex DirBrowser Component
Este componente es una mejora del componente File Upload que publiqué anteriormente.

Es simple, explora un directorio que se le pasa como parámetro, lista todos los archivos están en ese directorio, se pueden borrar y agregar nuevos archivos. Está pensado para imágenes.
Ejemplo
Flex Sources
Descargar todos los archivos
Apollo ya está disponible
Después de haber invertido parte del fin de semana en leer el libro del que hablé en mi post anterior, hoy me encuentro con la novedad que Apollo está disponible. Ya se puede empezar a jugar
