#17 Flash [Q] Tips: Trabajo con webservices en Flash Professional CS4 + ActionScript 3
Recientemente me ha tocado lidiar con un proyecto que basaba la toma de datos de un servidor remoto en el uso de comunicación mediante webservices. Cualquier que haya tenido que hacer algo similar con Flash CS4 o ActionScript 3 dentro de este IDE, se habrá dado cuenta que hemos perdido algo al respecto, más que nada los componentes que nos permitían sobrellevarlo de una manera bastante abstracta.
Si tratamos de tirar de AS3 puro y duro desde el IDE de flash, tampoco encontraremos la manera directa de comunicarnos con webservices… qué pasa, nos han dejado sin esta funcionalidad? Pues sí, pero al menos han dejado un regalo de consolación para que podamos apañárnoslas. Se trata de usar parte de las clases incluidas en el SDK de Flex, en nuestro proyecto Flash, y de esta manera importarlas y poder por tanto contar con clases como: WebService. Read more
Comunicación en aplicaciones modulares en AIR: parentSandboxBridge y childSandboxBridge

En web es muy habitual que un SWF principal cargue SWFs externos desde un servidor, ya sea el mismo (donde no tendremos ningún problema) u otro diferente (donde aprece ya el interesante mundo de los sandbox de seguridad de flash). Si esto lo llevamos a una aplicación AIR, nos topamos con un extra que es el sandbox de la propia aplicación.
Una de las grandes caracterísiticas de flash es la capacidad de cargar películas que a su vez pueden funcionar como aplicaciones. Esta situación, además de común, nos permite estructurar las aplicaciones de forma modular y lograr una independencia interesante entre la base instalada, los contenidos y los datos que estos manejan. Extender aplicaciones al vuelo, o actualizarlas es una de las grandes virtudes que tendría este sistema.
Read more
#016 AS3 [Q] Tips: ActionScript 3 para la Plataforma Flash

Un recurso imprescindible para todos los que nos movemos por varios frentes dentro de la plataforma flash, que es el centro neurálgico de la documentación sobre AS3 aplicado a todos los entornos y programas donde lo podemos emplear.
ActionScript 3.0 Reference for the Adobe Flash Platform
- Adobe Flash Player 10.1 y anteriores
- Adobe Flash Professional CS5 y anteriores
- Adobe LiveCycle
- Open Source Medria Framework 1.0
- Adobe AIR 2.0 y anteriores
- Adobe Flex 4 y anteriores
- Adobe LiveCycle Data Services
- Adobe Flash Lite 4
- Adobe Cold Fusion 9 y anteriores
- Adobe BlazeDS
#015 [Q] Tips: Timers responsables
La verdad que vamos hasta arriba de trabajo, pero cada viernes que pasa que no cumplo con el objetivo que me he marcado, me duele, asi que aprovecho cosas que salen en el día a día para tratar de trasladarlas al blog.
En Flash, muy lamentablemente (y no os quiero contar en Flash Lite) no podemos llamar explícitamente al “garbage collector”, sino que lo que hacemos es tratar de marcar los elementos a borrar de memoria dejandolos libres de referencias (bien con un delete, con un null, etc.) De esta manera, si logramos que no queden referencias sobre los objetos que hemos marcado para el borrado, lograremos que cuando el GC haga su tarea, sean liberados de memoria.
Un punto especialmente delicado en este proceso de borrado de referencias son los listeners, ya que son procesos en los que es facil que nos olvidemos eliminarlos, aunque seamos muy metódicos en nuestro código. Pues hoy os quiero hablar de un desliz que es bastante común cometer, y que también es bastante sencillo de solucionar: los listeners sobre TimerEvent de un Timer.
Read more
Curso Flash Lite en Intelygenz
Pues esta semana he tenido la suerte de poder compartir un poco de nuestra experiencia en desarrollo de aplicaciones reales en Flash Lite con la gente de Intelygenz (¡saludos a todos, alumnos, no alumnos y miriam!), y realmente aprovecho la entrade del blog para darles las gracias por haberme tratado taaaan bien, además de los buenos ratos que hemos pasado.
Durante el curso hemos dado un repaso bastante curioso a un montón de tópicos en Flash Lite, sobre todo al trabajo que se puede llegar a alcanzar en AS2 para que la programación no le resulte tan sucia a alguien que viene o está acostumbrado de AS3 (un ejemplo de un caso real, sobre cómo hacer algo cuiroso con AS2 es el Feather Framework de Raúl Jiménez (@elecash) que liberamos en su día en BlocketPC).
Por suerte con FP10.1 esto se nos termina, pero hasta entonces, o si queremos alcanzar algunos termianles previos o de gama más baja, Flash Lite y AS2 siguen mandando.
La entrada en realidad es para poneros aquí un resumen de las herramientas básicas necesarias para lograrlo, y que son la base para poder trabajar con Delegates, despachado de eventos en condiciones, Tweens realmente optimizadas para Flash Lite, gestión de cargas y sus limitaciones, trabajo con JSON (si optáis por esta solución).
La lista de la comprá para un buen programador Flash Lite en AS2 no debería dejar de contener:
- Delegate con parámetros, por ejemplo el de nuestro amigo Zárate.
- GDispatcher de Grant Skinner, para trabajar con eventos (¿por qué no hay en AS3 un removeAllEventListeners?)
- TweenLite para animación por código (a ser posible la TweenLite de hace tiempo, no la actual, que ha añadido complejidad y potencia, lo cual le sobra a FLite)
- Clase oficial de JSON para AS2 si vamos a trabajar con este formato (ya no disponible en la web de JSON)
- QueueLoader (hay muchas) en la gestión de cargas en AS2 (y a ser posible mejorada creando unas propiedades públicas estáticas para los tipos de eventos que se generan, que la original que empleamos en Feather Framework viene con Strings “a pelo”)
- Un buen singleton para gestión de información (como por ejemplo el ModelLocator de Feather Framework)
- Tener claro que el XML es malo para la salud
- Adobe Flash Lite Developer Center
- Referencia del Lenguaje
- Mobile & Devices Cookbook
- FlashMobileBlog (muy recomendable el ZIP de “Perfomance Tips” sobre Flash en dispositivos
- Adobe Flash Platform Blog
- Biskero, Recursos
- Biskero, Tutoriales y documentación
- Y como no… blocketpc, Flash Lite en castellano
- Blocketpc, Open Source
- Enrique Duvós
- Richard Leggett (sobre HTML5)
- Recopilatorio Joan Garnet
- Why Flash Isn’t going anywhere
- Sobre flash, html 5, rendimiento y video
-
posx = (clip._x + clip.sensible_mc._x);
-
posy = (clip._y + clip.sensible_mc._y);
-
-
var point:Object = {x:posx, y:posy};
-
_referencia.localToGlobal(point);
-
-
if(sensible_mc.hitTest(point.x,point.y,true))
-
{
-
trace("Choque");
-
}
-
else
-
{
-
trace("No Choque");
-
}
Con esto podréis cocinar muchas y ricas recetas con pocos recursos, pero con modernas herramientas como Eclipse + FDT, FlashDevelop, etc. ¡A degustarlo!
Iniciándose en Flash Lite
No es que esto sea un recurso, nuevo, pero tras un tiempo sin entrar a revisar la Wiki de Forum Nokia sobre Flash Lite he visto que el volumen de información que hay (gracias a la aportación de un montón de desarrolladores, que siguen demostrando que la salud de la comunidad Flash es enorme, incluso hablando del hijo pequeño de la familia) y me ha parecido que se merecía su huequecito en el blog.
Para cualquier que quiera comenzar a desarrollar aplicaciones para Flash Lite (ya sea 2.x, 3.x o 4 que está en camino) un recurso indispensable, es Forum Nokia. Por un lado por sus recursos y los usuarios que lo mantienen muy activo, y por otro lado, porque por mucho iPhone, Android, etc. que salga, a día de hoy el gigante por excelencia en terminales móviles sigue siendo Nokia.
Evidentemente no se pueden dejar de lado recursos oficiales como los que os dejamos a continuación:
Esto son solo algunas referencias, por suerte hay bastante información, tutoriales, ejemplos y código por ahi suelto que viene de perlas. Y ahora que ya tenemos encima el Flash Player 10.1 para dispositivos, con soporte para AS3, toca ponerse las pilas, reciclarse y disfrutar de flash en dispositivos con unas capacidades que sin duda nos dejarán hacer aplicaciones mucho más interesantes!
LocalConnection+ FlashGet
Durante el desarrollo de uno de los últimos proyectos en el estudio en colaboración con Netereo, hemos asistido a uno de esos errores inexplicables que te hacen pensar antes de dormir y a veces parecen ser cosa de los duendecillos que creemos hay dentro de nuestro ordenador.
Os explico, para sólo dejar abrir un juego realizado en flash simultáneamente en el ordenador, utilizábamos LocalConnection, de tal forma que el juego al iniciarse intentaba conectarse a una determinada conexión, si no podía conectarse era porque no existía con lo que dejábamos abrir el juego y creábamos la conexión para si se intentaba abrir otro juego si se pudiera conectar, por lo tanto dando mensaje de error por 2 juegos simultáneos.
Pues bien, el cliente nos comentaba que abría el juego, lo cerraba, intentaba volver a entrar y le saltaba el mensaje, sin tener dos juegos simultáneos ya que el primero lo había cerrado por completo. A Nosotros en nuestros ordenadores con idéntica versión de navegadores no nos ocurría, con lo que ya estaba el lío armao.
Después de muchas vueltas y búsquedas tanto por nuestra parte como por la parte de Netereo, le pedimos un video al cliente para saber que hacia exactamente, empezamos a comparar características del los equipos (sistema operativo, player de flash, firewall, antivirus….) y fue entonces cuando nos surgió la idea feliz, quizás tuviera algún programa acelerador de descargas que bloqueara la conexión creada en flash no liberándola al cerrar el navegador, siendo efectivamente lo que ocurría.
El programa acelerador de descargas, en concreto el FlashGet bloquea permanentemente la conexión creada con LocalConnection de tal forma que dicha conexión no se libera al cerrar el navegador.
Quizás esta información no os sirve de nada pero si algún día os pasa algo extraño con localconnection espero que esta información os sea útil y os ahorre unas cuantas horas ![]()
Flash
A raíz de este post que el Sr. Sotoca me hizo llegar, había escrito una mega-entrada para el blog tratando de puntualizar y corregir la multitud de incorrecciones o verdades a medias que se pueden leer en la entrada publicada por Enrique Dans en su blog. Pero luego lo he pensado mejor, y la verdad es que no merece ni la pena explicar algo que es tan evidente, así que lo he borrado y me quedo con una pequeña reflexión.
Todas las tecnologías y plataformas tienen fallos y puntos débiles (flash no está exenta, pero tampoco lo que se supone que son sus alternativas), pero si la web ha evolucionado como lo ha hecho y está en el punto en el que está, es entre otras cosas gracias a las capacidades de flash. Desde el punto de vista de una empresa desarrolladora de contenidos que no esté cegada en una tecnología, el hecho de que no existiera la posibilidad que aporta flash, sería un problema importante a la hora de afrontar según qué tipo de proyecto.
Y finalmente, es totalmente deshonesto hablar de flash en la web solamente como video, ni que fuera un simple player… quien vea así la plataforma está claro que ya está equivocado antes de comenzar.
Que un dispositivo que quiera venderse como una experiencia web completa similar a la del escritorio, no soporte esta tecnología, para mi es suficiente problema para no convencerme, porque existen muchísimos contenidos de mi interés que quedarán fuera de mi alcance. Así que quien no quiera flash en sus dispositivos, que no trate de engañar a la gente, y a todos aquellos que están aun escocidos de ver flash con tan buena salud, mala suerte, pero es muy triste emplear iPhone e iPad para sacar un debate que desde el inicio está muerto.
Linkitos interesantes:
HitTest de un MovieClip en un contenedor escalado
A raíz de un proyecto que estoy desarrollando en [Q] me he encontrado con un problema que a priori puede parecer común pero que por lo menos a mi me ha traído por la calle de la amargura la tarde y parte de la noche de este sábado.
El caso es que al reescalar unos MovieClips en los que en la programación un hitTest hacía referencia a ellos, se volvía loco no detectando bien el choque. Pues bien, después de muchas peleas encontré la solución que era tan sencilla como utilizar localToGlobal
Librería AS3 para el procesamiento de imágenes

Pues me animo a volver a escribir para acercaros en esta ocasión una librería en AS3 para el trabajo con imágenes, en este caso unas clases que nos permitirán trabajar con más de 50 filtros que pueden arrojar resultados tan interesantes como los que nos muestra el autor:
Para aprender a usarla nada mejor que los ficheros para descargar y la documentación bien a mano.
De todas formas una buena explicación, aunque en inglés, la encontráis en la página original donde se detalla la librería.