Upload con FileReference y variables por GET en Mac
Utilizando el FileReference para subir un fichero al servidor desde un Mac nos puede pasar que en nuestro código as no se dispare algún eventos asociado al FileReference, es decir el onComplete, onProgress, etc. Para este problema encontré en multitud de foros la solución que es tan fácil como que la pagina php o asp devuelva algo, es decir, bastaría en el caso de php escribir echo(“hola caracola”) o si queremos ser un poco más elegantes echo(“transerencia=OK”).
En mi caso después de aplicar esta solución los eventos seguían sin dispararse por lo que seguí buscando por Internet sin encontrar nada que me ayudara. Más tarde empecé a hacer pruebas sobre mi código dando con la solución que os pongo a continuación y espero os ahorre el tiempo que yo invertí pegándome con ello.
Si sobre el archivo php que hace el upload le añadimos variables GET es decir algo del tipo:
-
var variables:String = "";
-
variables += "persona=" + refBase.empresa_int.text+"&";
-
variables += "telefono=" + refBase.telefono_int.text+"&";
-
variables += "email=" + refBase.email_int.text+"&";
-
variables += "mensaje=" + refBase.mensaje_txt.text+"&";
-
variables += "referencia=" + referencia;
-
-
archivoASubir.upload("../php/upload.php?" + variables);
estas variables deben ir parseadas con la función escape de as, es decir:
-
var variables:String = "";
-
variables += "persona=" + escape(refBase.empresa_int.text)+"&";
-
variables += "telefono=" + escape(refBase.telefono_int.text)+"&";
-
variables += "email=" + escape(refBase.email_int.text)+"&";
-
variables += "mensaje=" + escape(refBase.mensaje_txt.text)+"&";
-
variables += "referencia=" + escape(referencia);
-
archivoASubir.upload("../php/upload.php?" + variables);
fijaros bien que a lo único que se le aplica la función escape es al contenido de las variables, dejando fuera el signo ? y el &.
[Q] en el móvil!
![Versión móvil de la web de [Q] interactiva disponible Versión móvil de la web de [Q] interactiva disponible](http://www.q-interactiva.com/blog/imagenes/qmovil.jpg)
Pues si!, también hemos sacado la versión móvil ( http://m.q-interactiva.com )!
Estamos que lo bordamos, en el mismo mes hemos sacado a la luz la versión para el escritorio y también la versión para el móvil. Va a dar la sensación de que trabajamos y todo!
Ahora en serio, nosotros siempre hemos sido de la filosofía de que a causa de las limitaciones que tienen los dispositivos móviles, toda web debería tener una versión específica para ellos, y que además los contenidos de la misma deberían ser un filtrado de la información más importante de la web de escritorio.
Para predicar con el ejemplo hemos hecho la versión para móvil de la web actual. Entre otras cosas podemos destacar:
- Lenguaje XHTML Mobile Profile.
- Uso del Handset Detection para la detección de dispositivos móviles.
- Generación de las imágenes de los proyectos en función de la resolución de la pantalla del dispositivo.
- Métodos de detección de agente para determinar cuando una visita se produce desde un terminal móvil y cuando desde un equipo de sobremesa, para mostrar y redirigir al usuario a la versión adecuada
- Validación xhtml en mobiready obteniendo una puntación de 5 sobre 5.
- Optimización de la web mediante URLs semánticas o amigables para que sean más entendibles y fáciles de recordar para los usuarios.
Pues nada más, ya nos contareis que os parece.
Colisiones y motores de física en Action Script

En la vida de un desarrollador flash lo normal es encontrarse con algún proyecto que implica el manejo de propiedades fisicas, como colisiones, escalados, fuerzas, traslaciones, rotaciones... En muchas ocasiones los efectos son sencillos y no es demasiado complicado crear un sistema realista y funcional, pero otras esto no basta.
Somos programadores y no tenemos por qué tener un grado de conocimiento de matemáticas muy elevado (aunque para bien o para mal nuestro mundo gira totalmente entorno a la geometría y trigonometría), así que nunca viene mal tener un aliado de ese lado, en mi caso tengo la suerte de tener un hermano físico, que muchas veces me ha sacado de un apuro, por un signo incorrecto, una interpretación del problema no adecuada... pero no es plan de abusar de la familia.
Lo que os presentamos en este post es un recopilatorio de diferentes motores de física en flash, para controlar colisiones, rebotes, fuerzas. Muchas veces... no tenemos que inventar la rueda. Así que si en la lista falta alguno que conoces y que crees que es digno de mención, no lo dudes y coméntanoslo.
Box2DFlash
Este motor, portado del original creado por Erin Catto's en C++ por Colin Northway, es una potente solución que contempla multitud de situaciones, como podéis ver en los ejemplos de su web. Además del proyecto en sourceforge, podéis ver la web del motor aquí.
APE: ActionScript Physics Engine
APE (Actionscript Physics Engine) es un motor opensource de física 2D para ActionScript 3, que puede ser empleado en flash y flex. Su autor es Alec Cove. Probablemente uno de los motores más conocidos, aunque por lo que he investigado en algunos casos la gente que lo ha exprimido al máximo considera que quizás no esté tan maduro como se puede necesitar.
Aquí os dejamos un tutorial de regalo.
Y su segunda parte.
Fisix Engine
Interesantísimo motor con unos buenos tutoriales (aun sin completar) y documentación. Puedes verlo en acción en unos ejemplos muy currados y de este motor realmente hay comentarios muy positivos, aunque puede que sea un poco más complejo de "asumir su funcionamiento".
FOAM
Un motor eficiente, pero que no viene acompañado de documentación ya que su autor es de la opinión que la mejor manera de comprenderlo es a través del código fuente del mismo. La documentación está precisamente en los comentarios sobre le código, que es lo que el autor echa en cara al resto de motores existentes por la red.
Demo 01: Caída perpetua
Demo 02: Test sin gravedad
Detección de Colisiones por Grant Skinner
Grant Skinner se curró en su día una interesantísima idea para detectar colisiones basándose en la clase BitmapData. Muchas veces no necesitamos un motor completo de física para nuestro proyecto, y simplemente un buen método para la detección de colisiones. Este sistema me parece una gran solución y de muy buena precisión.
Quizás alguno piense que está en AS2 y que ya no encaja en nuestros requerimientos, pero por suerte ya hay gente que se ha tomado la molestia en portarlo a AS3, cosa que evidentemente no parecía tarea difícil. La gente del estudio belga Boulevart tiene ya su código portado a AS3. (nota del que escribe: Elad, si estabas pensando en ello, no hace falta que sigas)
Luego existe alguna solución en camino o más experimental como Glaze Engine, del que no tengo mucha información que daros, pero que está ahí con algun ejemplo.
No obstante, tengo que decir, que en contra de lo que comencé escribiendo en el post, me parece muy importante y necesario saber qué tipo de cosas puede haber por debajo de estos motores, ya que en ocasiones tenemos que trabajar con colisiones o física totalmente en estado puro (por ejemplo programando una extensión de servidor para SmartFoxServer en su "particular ActionScript"). En un entorno así, o en otros muchos que nos podemos topar, no tenemos ni clases ActionScript, ni BitmapData, ni hitTest, ni métodos de Sprite o MovieClip... y solamente tenemos matemáticas y la trigonometría básica (ángulos, rectas, intersecciones, traslaciones, rotaciones...)
A nosotros nos ha ayudado bastante éste artículo sobre colisiones publicado en cristalab, y sobre todo el código fuente que hay detrás de él, que es puro cálculo matemático y no emplea más propiedades que las posiciones, ángulos y fuerzas de los elementos que intervienen. Si miráis el código veréis lo sencillo que puede ser el trabajo con formas circulares para afrontar los diferentes tipos de colisiones, y el consejo mejor que os puedo dar es trabajar con ángulo y velocidad, en vez de velocidades indeoendientes para el eje X e Y.
Lo dicho, sería genial conocer vuestra experiencia con alguno de estos motores, o descubrimientos de motores alternativo, esperamos tus comentarios!
Curso Completo Flash Lite en Castellano
En [Q] interactiva estamos de enhorabuena, y muy de enhorabuena, ya que podemos decir orgullosos que hemos participado de manera completa en la creación del primer curso completo sobre Flash Lite en castellano, colaborando con v2b, empresa puntera en videoformación en castellano.
Desde hace mucho tiempo la comunidad hispana demandaba un recurso de esta envergadura en castellano (lo sabemos bien por nuestra intensa actividad en Blocketpc), similar a algunas acciones que se han llevado a cabo en ingés, de la mano de Adobe. Por suerte v2b ha apostado por ello, y ahora ya tenemos documentación de referencia en este sentido, y además en formato de videotraining!
Marcos González, ha sido el encargado de crear un curso de cerca de X horas de duración, donde se hace un completo recorrido por todos los aspectos fundamentales para trabajar con tecnlogía Flash en el móvil. Desde una visión global del mundo del desarrollo móvil a la gestión de errores, uso de Device Central CS4 para el testeo, programación orientada a objetos en ActionScript 2, trabajo con datos, imágenes, sonido, video, sistemas de navegación, creación de screensavers avanzados, animación con tweens por AS... vamos, prácticamente un repaso total a los conceptos básicos para el trabajo con Flash Lite.
El resultado, gracias a la gran labor de v2b, creemos que es un curso merecedor de la atención de todos aquellos desarrolladores en lengua hispana que desean sumergirse en el desarrollo para móviles con una tecnología que ya conocen. Este curso se complementa perfectamente con el que ya os habíamos anunciado en su día como "Kit de Superviviencia", pero evidentemente en otra dimensión.
Os dejamos aqui la descripción del curso y el índice de contenidos, para que podáis ver con vuestros propios ojos el resultado de nuestro trabajo en el campo de la formación. Ha sido una gran experiencia, y seguro que no es la última.
Ya sabes, si quieres conocer de manera ágil y práctica qué se cuece detrás del móvil en tecnología flash, este curso se ha convertido automáticamente en un recurso sin precedente.
Adobe Flash Lite 3.0, desarrollo para dispositivos móviles
#007 ActionScript [Q] Tips: color aleatorio
Este tip ya lo solté por twitter, pero la verdad que como no quiero que pase otro viernes sin daros vuestra ración (que luego me venís con hambre y esas cosas...) pues creo que no viene mal como ejemplo de ultratip.

Resulta que haciendo un tema para una cabecera en el que necesitaba generar unos colores aleatorios se me cruzó la feliz idea de pensar en meterle un random al mayor de los hexadecimales... porque con un poco de suerte las conversiones implicitas que se hicieran en el proceso, podrían cuadrar. Y efectivamente cuadraron, con lo que no se me ocurre mejor manera de sacar un color random que esta:
-
var colorAleatorio:Number = Math.random() * 0xFFFFFF;
-
-
trace('Color decimal: '+colorAleatorio.toString());
-
trace('Color hexadecimal: 0x'+colorAleatorio.toString(16));
-
-
var circulo:Shape = new Shape();
-
circulo.graphics.beginFill(colorAleatorio, 80);
-
circulo.graphics.drawCircle(100, 100, 50);
-
circulo.graphics.endFill();
-
addChild(circulo);
Espero que os guste, no sirve para casi nada, pero ahi queda. Además este post tiene doble mérito, es el primero desde mi nuevo Mac Book Pro, con el cual espero poder empezar a dar la lata en breve sobre mis experiencias con Objective-C, Cococha Cocoa y desarrollo para iPhone.
Programador, te conocemos!
No he podido evitarlo, he visto el titulo del enlace (Programmers top 10 sentences) y he hecho clic. He visto las 2 primeras frases,
1) WTF!
2) Funcionaba en mi ordenador!
y estaba ya rendido a esta recopilación de las frases mas comunes entre programadores, y que sacan a la luz las miserias más miserables de los que llevamos esta vida de perro.
Como dicen quen una imagen vale más que mil palabras... aqui os dejo esta...

Y el correspondiente enlace. Yo me identifico con las 10, tanto en primera persona, como en tercera, lo cual refuerza mi teoría que la vida del programador es muuuuuy desgraciada... y que cada uno limpie su caca.
Comenzando con HTML5
Cada vez está más de moda el tema de HTML5, sobre todo desde la presentación de Google wave a mediados del mes de Mayo.
Para todos aquellos que no lo sepais, HTML5 es la nueva versión del lenguaje HTML (aunque todavía no está del todo finalizada).
Incorpora nuevos elementos con un valor más semántico para favorecer la estructuración de las páginas como facilitar la tarea de los buscadores para encontrar la información solicitada.
Algunas de las novedades más destacadas son:
- Nuevas etiquetas para favorecer el contenido semántico y la estructura de las páginas.
- Incorporación de nuevos tipos de datos en los input de los formularios (datetime, number, range, email, url, search, color).
- Incorporación de audio y video sin necesidad de plugins. Se incorpora una API para el tratamiento de este tipo de contenidos multimedia.
- Incorporación del elemento canvas para la generación de gráficos. Incorporación de una API para poder dibujar en 2D..
- Posibilidad de ubicar elementos pertenecientes a un formulario fuera de la etiqueta form mediante el nuevo atributo llamado "form"
- Atributo "required" para los elementos de un formulario.
Para todos aquellos que esteis interesados en ir conociendo HTML5, os dejo una serie de enlaces que tratan el tema.
Pues nada más por ahora. Ahora a ir practicando.
Por cierto remarcar que es HTML5 no HTML 5 :=)
Ejemplos AS3 Adobe Devnet para Flash CS4

De vez en cuando no viene mal un poco de material formativo como éste que os presentamos, que viene de la mano de Adobe, y que en su conjunto es un buen recurso para conocer algunas de las partes de nuestro querido AS3.
Un buen puñado de ejemplos y recursos que tocan temas variados como gestión de coordenadas, API de dibujo, anidamiento de movieclips, trabajo con 3D carga de contenidos multimedia, interactividad, e incluso un par de jueguecillos de ejemplo.
Como complemento os dejamos también este link al trabajo con animación en Flash que también nos viene de la mano de Adobe. Material muy interesante y completo para ampliar conocimientos.
Que los disfrutéis!
[Q] estrena web
Pues eso, [Q] ya tiene nueva web!!!!
Tras mucho tiempo sabiendo que teníamos que dar un cambio a nuestra web, por fin lo hemos hecho realidad. Su trabajo ha costado. Aunque el diseño ya lo teníamos desde hace tiempo, el desarrollo de la misma ha llevado más de lo que pensábamos. Siempre surgen nuevos retos que hacen dejar de lado los proyectos propios.
Lo que hemos pretendido hacer con esta nueva versión es actualizar un poco la imagen de nuestro estudio en Internet y hacer que el visitante tenga una experiencia un poco más agradable. Ahora es mucho más fácil acceder a los trabajos o contactar con nosotros. Incluso hemos integrado las últimas noticias del blog para tenerlo todo organizadito. Y sí, la cabecera es enorme en comparación con lo habitual. Pero esperamos poder usarla como un escaparate en el que poder mostrar últimas novedades o alguna cosa que ya se nos ha ido ocurriendo
No somos muy pretenciosos, hemos querido proyectar una imagen humilde de lo que es nuestro estudio. Los que ya nos conocen o han trabajado con nosotros, bien saben cómo somos y las cualidades que ofrecemos.
Todavía faltan cosas por hacer y un largo camino que recorrer con la web de [Q] Tenemos una galería de trabajos en la que todavía faltan mucho proyectos que merece la pena mostrar y que hemos ido realizando a lo largo de todos estos años y, lo más importante, falta la versión Flash. Queremos hacer algo realmente bueno (y bonito) aprovechando todo el potencial que tenemos aquí metido en términos de flash y actionscript. Lo que pasa es que primero toca hacer lo de los clientes!
Bienvenidos y muchas gracias por estar aquí con nosotros.
Nokia 6210 GPS II
Aquí os escribo la segunda parte del post sobre el navegador GSP del Nokia 6210 navigator, os pongo en antecedentes, ya tenemos todo instalado y funcionando correctamente con la salvedad que el GPS no nos habla, lo cual es bastante básico en un GPS. Para conseguir que nos hable debemos descargar las voces del GPS totalmente gratuito. Yo me pregunto, ¿Por qué no vendrán ya en el teléfono tanto les costará meterlas y así ahorrar a los usuarios este paso?
Bueno al turrón los pasos a seguir para descargar las voces son los siguientes:
- Instalar el Nokia PC Suite, que viene en cd del teléfono, sino lo tenemos a mano siempre nos lo podemos descargar de: http://www.nokia.es/soporte/software/pcsuite
- Descargar el programa map loader de Nokia: http://www.nokia.es/nokiamaps/maps/download/nokia-map-loader
- Instalar y ejecutar el programa con el teléfono conectado
- Una vez conectando iniciado el programa con el teléfono conectado, veremos dos pestañas en la parte superior de la pantalla, debemos hacer clic sobre la pestaña voice
- Seleccionamos de la lista de idiomas el deseado, en nuestro caso spanish (spain)
- Pulsamos el botón descargar, acción que bajara el paquete del idioma y lo instalará automáticamente en nuestro móvil
Pues con esto y un bizcocho esta nuestro GPS funcionando perfectamente y guiándonos de forma visual y hablada