^M Flex | Andrés Villagrán Placencia

Flex

Flex Media Player r7

He actualizado el reproductor, he agregado bastantes nuevas funcionalidades como soporte para AudioScrobbler (Artistas similares), Visualización del audio, un nuevo panel de canciones entre otros. Pueden descargarlo desde http://code.google.com/p/flexmediaplayer/Recuerden tener instalado Adobe AIR antes de probarlo 🙂  

Tags: ,

Tuesday, September 23rd, 2008 Flex Media Player 1 Comment

Flex Camp Chile 10 Diciembre 2008

Se viene, y con cuatica....!

Así es, comenzamos de lleno a la organización de Flex Camp Chile 2008, pronto tendremos publicidad que podrán ver en la ciudad de Concepción y otras de Chile, también estará disponible el sitio http://www.flexcamp.cl donde podrán encontrar toda la información necesaria del evento, registro, localización,etc.

El evento se realizará el 10 de Diciembre del 2008, en SurActivo, Concepción - Chile.

Tags: ,

Wednesday, September 3rd, 2008 Flex Camp Chile No Comments

VQ: Checklist

Más de alguno ya ha visto la siguiente imagen:

Checklist Screenshot 2

¿Que es? Checklist es una aplicación (por ahora solo web, pronto de escritorio) que permite administrar tus tareas (Tasks), organizandolas de la forma que tu desees y pudiendo marcarlas si estan completadas.

Por ahora solo permite ingresar/editar/eliminar/reordenar (Si, arrastrar y soltar) tareas pero pronto podrá gestionar proyectos, trabajar con multiples usuarios en un proyecto determinado, alarmas, etc. la idea es que me envien sugerencias y más características que deseen en Checklist.

Checklist Screenshot 1

Página del Sistema

Tags: , , ,

Wednesday, August 6th, 2008 Flex No Comments

mx:DateField en español

Esto es un pequeño y sencillo tip para dejar en español nuestro DateField (selector de fechas) en Flex.

Componente:

  1. <mx:DateField id="fecha" creationComplete="dateChooser_init(fecha)" />

ActionScript:

  1. private function dateChooser_init(dt:DateField):void {
  2. dt.dayNames=['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'];
  3. dt.monthNames=[ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
  4. 'Julio', 'Agosto', 'Septiembre', 'Octubre',
  5. 'Noviembre', 'Diciembre'];
  6. dt.firstDayOfWeek = 1;
  7. dt.formatString = "DD/MM/YYYY";
  8. }

Sencillo, no?

Tags: , ,

Saturday, July 26th, 2008 Flex 15 Comments

Flash/Flex indexable en Google y Yahoo

Hace algún tiempo investigando si realmente eran indexables los SWF en buscadores ya que, para los que han visto el sitio de mi empresa: http://www.villagranquiroz.cl esta totalmente desarrollado en Flex, y últimamente casi todos los proyectos que estoy trabajando son en este framework, y el mayor contra era para páginas web (sistemas de información no importa ya que no es visible al público) pero hoy ha anunciado Google y Yahoo que han implementado un algoritmo que permite guardar la información contenida dentro de Flash (Botones, Texto, etc) que ya está en funcionamiento (probablemente la mayoría de los sitios están siendo indexados, por lo cual hay que esperar).

Una buenisima noticia ya que tenía pensado cambiar el sitio a ExtJS , una exelente herramienta para integrarla con PHP pero obviamente no le llega ni a los talones a Flex.

Más información: googlewebmastercentral

Tags: , , ,

Wednesday, July 2nd, 2008 Flex, Google 1 Comment

Flex: Paso de variables entre Módulos

Suponiendo que necesitamos pasar de una pantalla a otra el valor de un numero por ejemplo (puede ser un id dentro de la tabla), dentro de la aplicación principal deben agregar una variable para guardar esta información (el código siguiente no esta completo):
Inicio.mxml:

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  2. <mx:Script>
  3. <![CDATA[
  4. public var id_modulo:int; // Esta es la variable donde guardaré el valor
  5. ......
  6. ]]>
  7. </mx:Script>
  8. ....
  9. </mx:Application>

Modulo1.mxml:
Ahora queremos que al hacer click en un botón "Siguiente" guarde el valor del id que necesitamos.

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  2. <mx:Script>
  3. <![CDATA[
  4. private function Funcion_Click_Boton_Siguiente():void {
  5. // Aquí guardamos nuestro valor en la aplicación principal,
  6. // después lo obtendremos de la misma forma
  7. Application.application.id_modulo = 10;
  8.  
  9. // Después de guardar, nos cambiamos al siguiente modulo
  10. Application.application.CargaModulo("Modulo2");
  11. }
  12. ......
  13. ]]>
  14. </mx:Script>
  15. <mx:Button label="Siguiente" click="Funcion_Click_Boton_Siguiente()" />
  16. </mx:Application>

Modulo2.mxml:
Ahora pedimos a la aplicación principal el valor previamente guardado y lo mostramos como una alerta cuando carga la aplicación, dentro de Application se define initialize para utilizar una función al momento de cargar un módulo.

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="CargarInicio()">
  2. <mx:Script>
  3. <![CDATA[
  4. // Necesario para poder utilizar el pop-up de alerta
  5. import.mx.controls.Alert;
  6. // Bindable se utiliza sólo si necesitan utilizar la variable
  7. // como valor en algún componente
  8. // Si no lo van a utilizar para eso, descartenlo
  9. [Bindable]
  10. private var id_a_utilizar:int;
  11.  
  12. public function CargarInicio():void {
  13. id_a_utilizar = Application.application.id_modulo;
  14. Alert.show("Mi variable tiene el valor: " + id_a_utilizar);
  15. }
  16. ......
  17. ]]>
  18. </mx:Script>
  19. ....
  20. </mx:Application>

Tags: ,

Wednesday, June 25th, 2008 Flex, Programación 10 Comments

Ejemplo básico con Flex y AMFPHP

Este es un ejemplo bastante simple de lo que se puede hacer con Flex y AMFPHP, este incluye lo siguiente:

  • Envío y recepción de mensajes simples (Típico Hola Mundo)
  • Recepción de un arreglo y representación en un DataGrid
  • Recepción de un arreglo consultado desde una base de datos (MySQL) con Zend Framework
  • Enviar información de un "Formulario" para su inserción a una Tabla (MySQL)

Son bastante simples, no entra en detalle con el manejo de Faults o Excepciones.

Archivos: WebserviceAMFPHP  - PruebaBasica-Flex - SQL - PruebaBasica

Notas:

  • WebserviceAMFPHP y PruebaBasica son Proyectos que pueden importar a Flex Builder 3
  • Deben configurar la ruta de donde se encuentra el WebserviceAMFPHP dentro de config.php en este mismo
  • Para no tener problemas, dejar estos proyectos dentro de los htdocs del webserver (recomendado Zend Core) para que la ruta web sea: http://localhost/PruebaBasica y http://localhost/WebserviceAMFPHP

Ojalá les sirva.

Tags: , , ,

Friday, June 13th, 2008 AMFPHP, Flex, PHP, Programación 5 Comments

Ejemplo Flex + AMFPHP + Zend Framework + MySQL

El siguiente ejemplo permite la creación de servicios web utilizando AMFPHP ,  Flex y Zend Framework para la conexión a la base de datos MySQL.

Lo primero es configurar services-config.xml  a la dirección que se conectará nuestro cliente, por lo tanto debemos modificar lo siguiente:  

<endpoint uri="http://andres.villagranquiroz.cl/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>

Luego de esto, debemos configurar al compilador que utilice esta configuración:Botón derecho sobre el Proyecto -> Preferencias -> Flex Compiler -> Additional compiler arguments y agregar -services "services-config.xml"

Con esto ya estamos listos para comenzar el desarrollo, solo destaco lo importante, lo demás pueden verlo en el código.Lo primero que se debe hacer es crear el servicio web dentro de (ver detalles en el ejemplo):/amfphp/services/nuestro_servicio/nuestro_servicio.php

Ahora podremos visualizarlo en el Webservice Browser que contiene AMFPHP (también debe ser compilado con services-config.xml), pueden revisar el mio: http://andres.villagranquiroz.cl/browser/index.html e intentar ejecutarlos.

Recomiendo utilizar Zend Framework para la conexión con la base de datos, en el ejemplo existe un archivo de configuración (config.php) para MySQL, para más información de la utilización de Zend_Db pueden ver la documentación del Framework o revisar la introducción que he preparado aquí: http://andres.villagranquiroz.cl/files/2008/03/01-php-java.pdf posiblemente tengan problemas con PDO_MYSQL ya que lo más probable es que no tengan instalado, recomiendo instalar Zend Core que tiene Apache + PHP y extensiones (incluye PDO) + MySQL, pueden encontrarlo en http://www.zend.com

Volviendo a la interfaz en flex:Primero debemos especificar los Métodos a los cuales queremos conectarnos de la siguiente manera:

<mx:RemoteObject id="remObj" showBusyCursor="true" source="EjemploAMFPHP.prueba_mantenedor" destination="amfphp" fault="faultHandler(event)" >

<mx:method name="Ingresar" result="ingresarHandler(event)" />

<mx:method name="Modificar" result="modificarHandler(event)" />

<mx:method name="CargarDatos" result="cargarDatosHandler(event)" />

<mx:method name="Eliminar" result="eliminarHandler(event)" />

</mx:RemoteObject>

Hemos definido los métodos y sus "Manejadores" (Handlers) los cuales tratarán la respuesta que nos da el Servicio Web luego de llamarlo, ejemplo:

private function ingresarHandler(event:ResultEvent):void {

Alert.show(event.result.toString(), "Resultado");

LimpiarFormulario();

}

Para llamar a los Métodos del Objeto Remoto:

remObj.getOperation("CargarDatos").send();

remObj.getOperation("Ingresar").send(nombre.text, apellido.text); // Si necesita parametros

Para ver el código deben importar a Flex Builder los proyectos o simplemente descomprimirlos y revisarlos.

Ejemplo en Linea - Código Fuente

Tags: , , ,

Thursday, May 15th, 2008 AMFPHP, Flex, PHP No Comments

Flex Hispano / Remote Object AMFPHP + Flex

 

He creado el Grupo FlexHispano en Google, en el cual espero que podamos compartir nuestros conocimientos e ideas y también fomentar esta grandiosa tecnología, la dirección donde pueden visitar el grupo es:

http://groups.google.com/group/flexhispano

Pueden hacer consultas sin la necesidad de estar registrados.

Por ahora me encuentro tabajando en un Ejemplo con AMFPHP, Zend Framework (Especificamente Zend_Db) y MySQL para ejemplificar los objetos remotos en Flex, lo más probable es que esté disponible durante la tarde del día Jueves 15/05/2008     

  

Tags: , , , ,

Thursday, May 15th, 2008 AMFPHP, Flash, FlexHispano 1 Comment

Avances FlexMediaPlayer : r2

He trabajado en FlexMediaPlayer bastante durante el día, ahora ya tengo listo el menejo de la base de datos de medios, la lectura de tags (mp3 en este caso) y la reproducción de audio (Doble click y reproduce la canción seleccionada), Feedback gráfico del avance de la reproducción, y la gestión de menus y modulos basados en configuraciones XML como nombre anteriormente, se ve algo así:FlexMediaPlayer r2La aplicación no la subiré como instalador para AIR hasta que porlomenos tenga las funciones básicas, pero si quieren revisarlo (y ejecutarlo obviamente) deben descargarlo desde el SVN (pueden importarlo a Flex Builder 3 sin problemas):

svn checkout http://flexmediaplayer.googlecode.com/svn/trunk/

flexmediaplayer-read-onlyEspero que sea de su agrado, ojalá que más gente se anime a desarrollar en este reproductor 😀
Visiten la web de este para mayor información:
http://code.google.com/p/flexmediaplayer/

Escuchando: Ayeron - Age of Shadows powered by FlexMediaPlayer

Tags: , , , ,

Sunday, May 11th, 2008 Flex, Flex Air No Comments