chblogBlog personal de Cristian Hernandez

Flash Player 10

En Adobe by Cristian Hernández on the October 2nd, 2007

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 Actionscript, Apollo by Cristian Hernández on the August 31st, 2007

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 ;)

Link: AIR:Flash CS3 Professional Update

Variables globales en Actionscript 3

En Actionscript 3 by Cristian Hernández on the July 4th, 2007

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.user = "nombre de usuario";
_root.userType = "admin";

o lo siguente:

_global.user = "nombre de usuario";
_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:

package{
        [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:

trace(GlobalVars.getInstance().user)// nombre de usuario;
GlobalVars.getInstance().user = "soy el nuevo usuario"

En otra class:

trace(GlobalVars.getInstance().user)// soy el nuevo usuario;

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

En Actionscript 3, Adobe by Cristian Hernández on the July 3rd, 2007

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:
Editar Componente

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?

En Actionscript 3, Adobe by Cristian Hernández on the June 21st, 2007

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

En Cool Sites by Cristian Hernández on the June 15th, 2007

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 Flex by Cristian Hernández on the May 5th, 2007

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

Mas info: Flex Module for Apache and IIS en Adobe Labs

Flex: Cairngorm Framework

En Flex by Cristian Hernández on the April 27th, 2007

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.

http://www.cristianhernandez.org/blog/wp-content/uploads/2007/04/cairngorm2_rpc.swf
.
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:

Bueno, eso es todo por ahora, más adelante seguiré hablando de esto ya que me ha gustado mucho.

Mini-FAQ sobre Flex 2

En Flex, Actionscript 3, Adobe by Cristian Hernández on the April 24th, 2007

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

En Actionscript, Flex by Cristian Hernández on the March 20th, 2007

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:

SecFilterEngine Off
SecFilterScanPOST Off

Probé con esto y anda bien, espero que no traiga muchos problemas de seguridad, pero los uploads andan ;)

Flex DirBrowser Component

En Flex, Actionscript 3 by Cristian Hernández on the March 19th, 2007

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

En Apollo by Cristian Hernández on the March 19th, 2007

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 ;)

Next Page »