Cristalab

Como crear componentes en Flex 2

Por: Dano + 30.12.2006

Este es el primero de 12 artículos que publicaré a lo largo del 2007 acerca de Adobe Flex 2. Una de las mejores herramientas para creación de aplicaciones ricas en medios para Internet. En este artículo mostraremos los pasos para crear un componente redistribuible de Flex (MXML ).

Conocimientos requeridos para entender el artículo:
Es recomendado que antes de continuar leas algunos de estos enlaces.

Creando la librería


Para la creación de un componente redistribuible es necesario crear un proyecto de librería. Para esto debe de seleccionar:
File -> New -> Flex Library Project
A continuación se abre una ventana donde le solicita el nombre del proyecto y la localización del mismo.

Nombre del proyecto: En ese espacio introducimos el nombre que daremos a la librería. En mi caso, la llamaré "danonino"*. En la localización del proyecto podemos dejar la ruta default. Presionar el botón siguiente(next).
*Nota: Para el nombre de librerías y carpetas contenidas en la librería se recomienda el uso exclusivo de minúsculas.

En la siguiente ventana tenemos cuatro pestañas: Clases, Assets, Ubicaciones adicionales y Ubicaciones de las librerías. Básicamente son definiciones de clases a usar, y las rutas que necesitamos(donde se encuentran clases o componentes adicionales, necesarios para compilar nuestra librería). Por ser esta nuestra primer librería no es necesario realizar alguna modificación adicional en esa ventana. Presione el botón finalizar.

Definiendo la estructura de la librería


Crearemos una estructura basándonos en el patrón MVC. **
En nuestro navegador de proyectos (Navigator) aparecerá nuestra librería "danonino". Damos click con el botón secundario del mouse y elegimos:

New -> Folder -> comun
Hacemos lo mismo para crear controllers y data

New -> Folder -> controllers

New -> Folder -> data

Tenemos nuestra estructura definida. Es momento de agregar componentes. Si eres nuevo en esto del MVC, puedes leer la entrada de la wikipedia al respecto.
**Nota: Realmente en Flex, por ahora, no podemos tener una capa de acceso a datos. No hasta que no se generen clientes MySQL, Oracle, SQL Server, ya que técnicamente y gracias a los Sockets binarios, sería posible crearlos.

Agregando componentes a la librería


Para agregar un componente que forme parte de danonino.comun, daremos click con el botón secundario del mouse sobre la carpeta común y seleccionar:

New -> MXML Component

En la ventana de creación de componente, ingresaremos el nombre de su componente (Filename), que es el mismo que el nombre del archivo. Para este ejemplo llamé a su componente "MyComponent". Como este componente estará basado en "TitleWindow" elegiremos esa opción en "Based on". Por ultimo, como layout, escogeremos "Absolute". Luego, presiona el botón Finalizar.

Abre la vista diseño del nuevo componente "MyComponent" y agrega componentes a tu elección. El objetivo de este artículo es mostrar como crear un componente MXML, mas no una funcionalidad en concreto. Puedes, por ejemplo, copiar y pegar el código siguiente como ejemplo de MyComponent.mxml.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" title="Opciones">
   <mx:Label x="71" y="51" text="Seleccione una opción:"/>
   <mx:RadioButtonGroup id="rg"/>
   <mx:RadioButton x="95" y="93" label="Opción 1" groupName="rg"/>
   <mx:RadioButton x="95" y="117" label="Opción 2" groupName="rg"/>
   <mx:RadioButton x="95" y="143" label="Opción 3" groupName="rg"/>
   <mx:Button x="144.5" y="183" label="Seleccionar"/>
</mx:TitleWindow>

Creando el archivo SWC


Selecciona el menú:
Project -> Properties -> Flex Library Build Path

En la ventana abierta selecciona la pestaña Clases. Elije las clases que deseas incluir en el archivo SWC. En este caso activé "MyComponent". Tal como se muestra a continuación:

En output folder, seleccionamos la carpeta donde exportaremos el archivo SWC (Es importante memorizar esta ubicación). En mi caso para compartir mis SWC con mi grupo de trabajo la publicaré en mi servidor web.
C:\wamp\www\Danonino\Flex\lib

Y damos "OK". Abrimos la carpeta que definimos como destino y verificamos que el archivo SWC ha sido creado.

Si ves un archivo SWC, felicidades, has creado tu primer componente redistribuible.

Probando el componente


Para probar tus componentes puedes crear un proyecto para pruebas unitarias. Para esto selecciona el menú:
File -> New -> Flex Project

Selecciona la opción de "Basic" (proyecto básico) y presiona siguiente (Next). Asigna el nombre de FlexUnit y presione siguiente (Next).

El siguiente paso es muy importante, selecciona la pestaña "library path". Posteriormente presiona el botón Add SWC, selecciona su nuevo archivo SWC y presiona OK.

En la ventana de creación del proyecto clickea "Finalizar".

Para usar nuestro componente, en el mxml del proyecto "FlexUnit" (main.mxml, flexunit.mxml o como llamaste a tu archivo principal) agrega esto en el tag de la aplicación (mx:Application):
xmlns:danonino="comun.*"

De tal manera que el tag quedaría así:

Código :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:danonino="comun.*">

Este es un ejemplo de un MXML usando el componente que creamos:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:danonino="comun.*">
 <danonino:MyComponent>
    
 </danonino:MyComponent>
</mx:Application>

Espero que este aporte sea de tu agrado, nos vemos en la próxima entrega.

PD. Si tienen alguna sugerencia/petición de cual debe ser mi próximo artículo no duden en comentarla.

Etiquetas flex

Comentarios | Enviar un comentario
Alabanza Alabanza Alabanza Alabanza Thumbs up

Dano :

Este es el primero de 12 artículos que publicaré a lo largo del 2007

¿Por qué sólo 12? ¡¡¡queremos más!!!Latigo
Por: Zguillez
Sorpresa
Muy bueno miau
El próximo artículo podría ser sobre cómo estructurar aplicaciones con el MVC y un ejemplo sencillito Sonrisa
Por: Zah
Gran GRAN gran aporte maestro Dano Alabanza Alabanza

Ya estaba necesitando en breve hacer componente en Flex Sonrisa
Estoy deseando ya el siguiente Sonrisa, y como dice Zguillez, SOLO 12? Riendo
Solo puedo decir Genial Guiño

Un saludo...
Por: MorphX
wooooooooooow

*babea

eres grande noDa una Alabanza Alabanza
Por: La100rra
Si me parece una buena opción la que comentas zah, no se si especificamente el segundo artículo hable de MVC, pero definitivamente uno de los artículos será dedicado a ello. Guiño

Saludos miau
Por: Dano
Bien explicado.Sonrisa
Saludos
Isra
Por: Israel Gaytán_blog
Hola! Yo ya he montado unos cuantos componentes, pero siempre que pruebo despues la pelicula SWF me sale con un fondo azul degradado, porque? se puede cambiar? Comentaros que estoy usando Eclipse con el Plugin para Flex... Tambien estoy empezando un blog, que me dedicare a temas de Flex, AS, y cosas divertidas y varias, asi que una ayudita pleaseeeee
Por: Chema
He comenzado a desarrollar en flex, me parece que es excelente a la hora de crear aplicaciones para internet. Seria posible que dentro de las entregas que vas a realizar expliques (si es posible) como interactuar con datos que residen en un servidor con MS Sql Server? La verdad no tengo ni idea de como hacerlo.
Saludos,
Excelente aporte.
Por: john17_blog
Hola,

Chema,lo del color de fondo, deberías probar cambiar el css.

Respecto al manejo de datos con M. SQL Server, es buena tu sugerencia, pero no me centrarlisaré en un controlador de BD en especifico, tal vez hacer un DAL(Data Access Layer por sus siglas en inglés), que trabaje con SQL Server, Oracle y MySQL.

Espero en próximos dias sacar la segunda entrega.


saludos miau
Por: Dano
Excelente eso seria aún mejor, ya que solo seria necesario interactuar con esa capa que de fondo haria todo el trabajo devolviendo los datos por ejemplo en formato XML.
Buscando en el WEB consegui un buen articulo de como consumir servicios WEB realizados en ASP.NET y obtener la información en formato XML, es bien sencillo, ya que solo devuelve una cadena el articulo pero es una gran aproximación. En ese mismo articulo se explica como obtener los resultados del servicio desde Flex. Lo que nose es como seria si los datos correspondieran a diferentes consultas, por ejemplo, de clientes, ventas, etc.
Que suerte haber encontrado este blog, excelentes artículos, saludos.
Por: John17_blog
me gustaria saber como creo repetidamente radiogroups con sus diferentes opciones y despues acceder a sus valores gracias
Por: Ivanruva_blog
Podrías intentar con el repeater. Guiño
Por: Dano
Una duda, con Flash 9 Beta Public es posible crear componentes que se pueden integrar en Flex ? . Apenado
Por: Rafeo
Sí, serían componentes basados en ActionScript.


saludos
Por: Dano
disculpa estoy interesado en aprender flex no domino el ingles donde podria encontrar en internet un curso en español de flex gracias
Por: pacha_blog
de mucha ayuda y muy completo su artículo.

Estoy iniciando el estudio en flex y sigieró que el próximo artículo pueda ser en el diseño de componentes dinámicos, es decir, que pueda enviar paramentros en el momento de llamar el componente para que me devuelva el componente con esas características.
Por: gutierrez_blog
Hola Amigos, soy nuevo en Flex y veo que es una herramienta fabulosa, ya hice una aplicacion que me esta sirve mucho. lo que quisiera saber si los archivos swf se pueden reducir mas

Saludos Amigos Flexeros
Por: stryker_blog
como se crean menues en Adobe flex ?????
Por: Erika_blog
Que haríamos los mortales ojeadores sin los ilustrativos ejemplos de las mentes privilegiadas como la tuya Dano!
Fantástico tip! Sonrisa
Por: Sisco
muchachos tengo un problema en primer lugar de programación y desarrollo no se mucho aunque hago el esfuerzo hace buen tiempo ando buscando un controlador (.swc) para .swf pero ke no tenga publicidad como el camtasia o el de captive buscando conoci el flex como se ke me llevaria tiempo aprender a desarrollar en este me preguntaba si es que podian decirme donde encontrar lo que busco sea el controlador mismo o un tutorial para hacerlo (vluceroguevara@gmail.com)
Por: victorlugue_blog
Hola soy de venezuela y psss un saludo a la gente de cristalab hacen un exelente trabajo... gracias por abrirme los ojos miau flex es lo mejor que he utilizado...
Por: K5_blog
Disculpen mis abreviaciones... ley el articulo "IMPORTANTE" un poco tarde Muy Feliz
Por: K5_blog
Hola a todos ..hasta ahora estoy indagando respecto aa adobe flex..me gustaría conocer donde encuentro ejemploe de la aplicabilidad de este software..ya que me interesa aprenderlo.....y aplicarlo en el diseño de las interfaces que diseño.
Por: luis fabian_blog
hola soy nuevo en esto y necesito de
algun tutorial completo de flex en español que me recomiendes, ya que flex es excelente y quisiera aprenderlo
Por: FLX_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.