#007 ActionScript [Q] Tips: recibir valores por flashvars en AS3

El de esta semana es corto, pero necesario ya que es un cambio notable frente al método habitual que estaba establecido para AS2 (donde nos creaba automáticamente una variable con ese nombre en la raiz del documento). Cuando a un SWF le pasamos variables inicialmente por flashvars o por parámetros en la URL, podemos acceder a los mismos de la siguiente manera:

var valor:String = root.loaderInfo.parameters.nombreVariable;

donde nombreVariable es el nombre del parámetro que le pasamos al SWF externamente por flashvars, ya sea desde el OBJECT, EMBED, etc. Hay que tener en cuenta que como todo lo que se recibe externamente por estos métodos, son cadenas de texto a menos que les hagamos la correspondiente conversión.

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.

Seguir leyendo…

#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.

#006 ActionScript [Q] Tips: contains()

Este tip es muy directo ya que simplemente comentaré uno de los métodos que obtienen todos las clases que extienden de DisplayObjectContainer, ya sean propias o las consabidas Stage, Sprite, Loader y MovieClip.

En realidad lo interesante de esta función es que no solamente funciona para descendientes directos en la jerarquia de la Display List, sino que busca el resultado en todos los descendientes. Veamos un ejemplo:

Seguir leyendo…

#005 ActionScript [Q] Tips: Singleton en AS3

Para los que trabajábamos con clases en AS2, no era raro emplear un Singleton para alguna de ellas, con le objetivo de tener una clase general para toda la aplicación con la capacidad de acceder a ella desde cualquier punto de manera limpia. Con AS2 podíamos declarar constructores privados y dejar un código tal que así:

Seguir leyendo…

#004 ActionScript [Q] Tips: reemplazar elementos de un array

Muchas veces veo como para realizar determinadas operaciones con arrays la gente emplea operaciones de intercambio, recorrido, etc. y no analiza a fondo las posibilidades que nos dan a veces los métodos de la clase Array.

En esta ocasión lo que veremos es cómo realizar inserciones en una posición dada, o intercambios de elementos. Para ello el método splice de la clase Array nos da unas cuantas posibilidades, ya que nos permite eliminar, añadir elementos a partir de una posición dada, intercambiar un elemento existente por otro nuevo, o incluso eliminar un grupo y poner en su lugar otro.

Seguir leyendo…

#003 ActionScript [Q]Tips: Corrección punto flotante

Cuando tenemos que trabajar con números reales (double, float, punto flotante, o como los queramos llamar) y no solamente eso, sino que tenemos que mostrarlos por pantalla, muchas veces nos llevamos sorpresas poco divertidas, como que donde era 2 aparece 1.99, o donde era 2.98 aparece 2.96, etc.

Casos muy normales para esto son el trabajo con números que representan cantidades monetarias… (no existe 1,999 € de cara a un usuario final) o el trabajo con sistemas métricos como podría ser el longitud (metros, centímetros, etc.)

Seguir leyendo…

Safari también tiene secretos

Y es que hay cositas que no sé por qué se tienen escondidas a nosotros, los usuarios «pezuñiles». Sí hombre, esos que no sabemos realmente qué estamos haciendo cuando pulsamos el botón rojo pero que no podemos dejar de sentirnos atraídos por tan notorio color. A mí me pasa lo mismo con lo que hay detrás de una web, que no tengo realmente idea de HTML y CSS pero me gusta toquetear.

Aunque realmente lo he descubierto gracias al compañero Canteli por otros temas, el caso es que ni Harry Potter se sabe este truco de magia. Apunta:

  • 0- Cierra Safari si lo tienes abierto
  • 1- Abre Terminal
  • 2- Escribe defaults write com.apple.Safari IncludeDebugMenu 1
  • 3- Vuelve a abrir Safari y te encontrarás con un nuevo menú.

Bonito, ¿verdad? Toda una especie de Web Developer pero en el navegador más conocido de la manzanita mordida. Realmente es el menu Debug del navegador pero supervitaminado para que tengas acceso a un montón de información útil: tiempos de carga, código HTML y CSS, consola de errores…

Como pega pues ponerle que el código no se puede editar on the fly como sí te lo permite Firebug por ejemplo. Aún así, un menú realmente útil que ya no volverá a ser invisible para mí.

PD: En realidad el menú de desarrollo también lo puedes activar desde Preferencias >> Avanzado. Pero no es la opción «geek» xD.

#002 Flash IDE [Q]Tips: Deshabilitando los atajos en el IDE

Siempre que probamos películas flash en el IDE que requieren del uso de teclado sin estar dentro de un campo de texto, comprobaremos que nos podemos volver locos por la cantidad de teclas de acceso rápido que existen en flash para por ejemplo, cambiar de herramienta.

Entiendo que cuando compilas un SWF, podian deshabilitar los atajos, o al menos cuando la ventana de prueba de la película toma el foco, sin embargo aunque no lo hace, hay manera de solventar este problema tan molesto.

Si quieres que esto no ocurra y emplear el teclado dentro del IDE como lo haces en el navegador o en el standalone player, una vez que estás en la ventana de pruebas de la película: Control > Disable Keyboard Shortcuts.

Redirección 301

En ocasiones, en el desarrollo de un proyecto web se necesita hacer una redirección a otra página ubicada en el servidor. Para ello es conveniente hacer una redirección 301. Esta redirección se puede hacer con PHP de la siguiente manera:

Se introduce el siguiente código PHP en la página que se desea redirigir:

Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.mipagina.com" );

Espero que os sirva en alguna ocasión…