Charla Flash y dispositivos Móviles

18 05 2006
Por Marcos

Impartiremos una charla este 19 de Mayo en el Cibercentro “La Lila de Oviedo (Asturias) a las 18 horas titulada “Flash y dispositivos Móviles”, dentro de las actividades organizadas periódicamente por ESMMUG.

En ella trataré de explicar las ventajas que puede ofrecer Flash como herramienta para la implementación de determinadas soluciones para dispositivos móviles, así como dar una visión general de como está la situación actual en este área.

Si a alguno os queda a mano (seré el unico asturiano por estos lares?) y os apetece, no dudéis en pasaros por alli, de paso podréis conocer ESMMUG y su actividad.



Talleres Verano Subflash 2006

3 05 2006
Por Marcos

Como vienen siendo habitual en Subflash sobre estas fechas, nos ponemos en marcha con el desarrollo de los Talleres de Verano. En esta ocasión hemos seleccionado Asturias como lugar de encuentro, y contamos con las siguientes infraestructuras:

Fechas: Agosto 2006
En principio fin de semana 18,19 y 20.
LLegada viernes: 18
Sabado talleres completo
Domingo mañana talleres
Domingo tarde despedida.

Alojamiento:
Albergue Lugo de Llanera
[ Hoteles para quien lo desee en Oviedo ]
Precio albergue persona/noche: 5,50 €

Talleres:
Ciber Centro “La Lila” en Oviedo, dotado con salon de actos a nuestra disposición, proyector, conexión wifi, podéis conocerlo mejor aqui:
http://212.89.8.122/

Precio Aproximado:
60 - 90 Euros fin de semana completo (noches viernes y sábado y pension completa).

El precio es orientativo.

Esto pretende ser un primer sondeo de la gente que se interesará por asistir, ya que cada año son más las personas que acuden y es necesario hacer una previsión, sobre todo por el precio del alojamiento y la disponibilidad hotelera de la zona.

Por norma general, se suelen realizar unos 5 talleres repartidos en 2 días (Sábado mañana y tarde, y Domingo mañana) y se dispone de tiempo libre para charlar y compartir el tiempo con los demás. Este año las comidas y cenas se organizarán en grupo por los alrededores de Oviedo, para poder disfrutar de la gastronomía de la región 8-)

Esperamos vuestras respuestas, consultas y sugerencias, podéis hacerlo en las siguientes direcciones de correo:

andres[at]esmmug.com
marcos[at]q-interactiva.com

Saludos,
El Equipo Subflash



Detección de Conexión a Internet

2 05 2006
Por Marcos

Este nuevo tutorial explica paso a paso como crear un sencillo código en nuestras aplicaciones para PPC que nos permite conocer si el dispositivo en el que corre dispone de conexión a Internet. Para ello se combina Flash y MDM Zinc.

Creando un sistema de detección
de conexión a Internet

En este tutorial trataremos de mostrar como implementar un sencillo sistema de detección de conexión para Pocket PC con Flash y MDM Zinc. Primero crearemos la pelicula que albergará todos los elementos necesarios par mostrar información del proceso al usuario y luego nos adentraremos en cómo usar algunas de las características de MDM para comprobar si disponemos de conexión a internet.

En una proxima entrega veremos la aplicación de este sistema para crear un actualizador de ficheros XML de una aplicación ficticia cuando se detecta que se dispone de conexión.

Comenzamos

Creamos un fla con las siguientes características:

  • Dimensiones: 240 x 320 (tamaño más común para las pocket pc)
  • Configurado para exportar para flash player 6.

Contenido:

Para este ejemplo únicamente tendremos un fondo con un texto en él.

En nuestro caso hemos llamado al archivo fla tesxtconexion, los fps los dejamos en 12 ya que este ejemplo no dispone de ningun tipo de animación y este aspecto no es crítico.

Funciones y métodos que emplearemos

Realmente este ejemplo esta basado 100% en las funcionalidades extra que nos aporta MDM para mejorar la interaccion del player con el dispositivo, con lo que detallaremos ahora que funciones y metodos emplearemos para llevar a cabo nuestro objetivo:

mdmdinit()

La colocamos en el primer frame de nuestra pelicula, sirve para inicializar todo el sistema de funciones y métodos de MDM y que a partir de ese momento podamos emplear nuestro código {mdm}script en nuestra pelicula. Esta llamada es obligatoria en TODOS los swf empleados en el proyecto y no solamente en el SWF base.

mdm.checkconnection(funcion)

Esta funcion nos permitirá conocer si el dispositivo dispone de conexión a internet, y cuando conozca el estado, nos lance la función pasada como parámetro. Sobre este sistema de pasar una función como parámetro haremos unas aclaraciones en el siguiente punto del tutorial.

mmd.exit()

Esta función nos permitirá cerrar la aplicación lanzada en nuestro PPC, admitiendo determinadas formas para salir con una pregunta, directamente, etc.

Sistema de ejecución de métodos de mdm

El código {mdm}script se ejecuta de forma asíncrona, lo que quiere decir que la función no devuelve el resultado de la petición en el momento que es llamada, sino que necesitamos de un sistema de callback para actuar solo cuando estemos seguros que ya nos ha devuelto el resultado.

Un ejemplo claro de esta forma de trabajar lo podemos observar con la siguiente función de mdm.

Actionscript:
  1. var valorbateria = mdm.battery_getlife();
  2. _root.output.text = “Bateria %:”+valorbateria;

No nos daría un resultado correcto, ya que cuando sacamos la información por pantalla aun no hemos obtenido el valor que deseabamos. El sistema para solucionar este problema es el siguiente:

Actionscript:
  1. onBateria = function(valorbateria)
  2. {
  3.   _root.output.text = “Bateria %:”+valorbateria;
  4.   }
  5. mdm.battery_getlife(onBateria);

De esta manera la funcion onBateria se lanza cuando el valor ya está disponible, y lo recoge en su primer argumento valorbateria,que puede ser empleado en el código que contiene.

Esto es así en lineas generales para todas las funciones propias de mdmScript de las que deseemos obtener valores de vuelta.

El ejemplo de Test de Conexion

Con todo lo anterior ya podemos enfrentarnos a la simple tarea (ya veréis que realmente es simple) de detectar si el dispositivo cuenta con conexión o no.

Creación del fla

Para este ejemplo dispondremos de 3 capas, una etiquetada como “codigo”, otra como “boton cerrar” y otra como “texto salida”.

En nuestro primer frame de la capa código colocamos el ya conocido mdm.init() de tal manera que a partir de ese momento dispongamos de todos los comandos para comunicarnos con nuestro dispositivo. Es una practica dejar 1 frame a partir de la inclusion de esta llamada para asegurarnos que se ha cargado toda la arquitectura correctamente.

A continuación como explicamos en los párrafos anteriores, creamos un nuevo fotograma clave en la capa código (el segundo) donde incluiremos el siguiente script:

Actionscript:
  1. stop();
  2. onConnectionStatus = function(resultado)
  3. {
  4. if (resultado==”true)
  5. {
  6. _root.salida.text = “Se dispone de conexion.”;
  7. }
  8. else
  9. {
  10. _root.salida.text = “No se dispone de conexion.”;
  11. }
  12. }
  13. mdm.checkconnection(onConnectionStatus);

Por otro lado creamos un campo de texto dinámico en el segundo fotograma de la capa “texto salida” que ocupe una buena parte de la pantalla y le damos como nombre de instancia salida . Lo configuramos como multilinea para que en caso de que el texto insertado en el sea extenso permita su visualización. Este campo de texto nos servirá para mostrar los mensajes al usuario sobre las acciones que realiza el código. También podríamos usar el método mdm.prompt(mensaje) para sacarlo como una ventana de alerta.

El código solicita a mdm el estado de conexion, y le asigna una función callback para cuando ésta respuesta esté disponible. Cuando mdm dispone de la respuesta lanza el callback pasandole como parámetro el valor de respuesta. Dentro del callback analizamos este valor para mostrar en el campo de texto si se dispone o no de conexión.

Finalmente vamos a programar un botón para poder salir de la aplicación cuando deseemos, para ello en el segundo frame de la capa “boton cerrar” situamos un clip de pelicula que represente el cierre de la aplicación (por ejemplo una X, para ser originales). Asignamos a dicho clip cerrar_mc como nombre de instancia y añadimos el siguiente fragmento de código al que ya teníamos insertado en el segundo fotograma de la capa de código.

Actionscript:
  1. cerrar_mc.onPress = function()
  2. {
  3. mdm.exit(“ask”,”¿Está seguro de salir?”);
  4. }

El significado de este código es bastante evidente. Usamos la variante pregunta de la funcion exit (especificado en el ask que actua de primer parámetro) para crear una ventana de alerta con dos posibles respuestas SI / NO frente al texto pasado como segundo parámetro.

NOTA:
El hecho de usar onPress en vez del clásico onRelease es que en las aplicaciones de PPC, es más adecuado, ya que la detección del onRelease con el lápìz es bastante más complicada que la detección de un onPress. De hecho, fallan con bastante facilidad todos los eventos relacionados con “soltar” cuando usamos flash en ppc a través de mdm (no hemos comprobado aun si ocurre en otras aplicaciones alternativas a mdm como flash assist, aunque si esta contrastado que en aplicaciones realizadas en C++ o .NET esto no ocurre).

Creación del ejecutable para PPC

Una vez compilado (y comprobado que no funciona absolutamente nada en nuestro equipo habitual) ya disponemos del swf para crear el ejecutable e instalador de nuestra aplicación para PPC. Si no sabes aun cómo realizarlo te remitimos al tutorial disponible en esta misma web: Uso básico MDM Zinc V2 Pocket PC

Consideraciones finales

Hemos observado en las pruebas realizadas que este método de detección de conexión funciona tanto en conexión directa de PDA con Internet (via Wireless, bluetooth con un movil,...) , como a través de un equipo al que se encuentra conectado el dispositivo, si bien nos ha dado la sensación que en el caso de estar contectado a un equipo mediante activeSync, detecta conexión aunque el equipo al que se está conectado no disponga de ella.

Este sencillo script nos puede ser muy útil para todas aquellas aplicaciones en las que se necesite disponer de la información de forma actualizada, con lo que podremos solictarle al usuario su consentimiento para comprobar actualizaciones en el caso que detectemos que existe conexión a internet.

En el próximo tutorial, realizaremos esta tarea con una actualización de un fichero xml via internet con detección de conexión.

Aqui el enlace al tutorial en PDF:

Detección Conexion Flash + MDM Zinc