Archive for the ‘programación’ Category

Charla: Videojuegos para la Web

Estaré dando una charla sobre Videojuegos para la Web en la Universidad de Palermo. La primera parte será el día Lunes 18 de abril, y la segunda se hará el lunes siguiente: 25 de abril: ambos encuentros ocurrirán a las 11.30 de la mañana, en la UP: Mario Bravo 1050.

[Ni que lo digan… no salí favorecido en la foto.]

¿Por qué una charla de videojuegos para la Web?

En el último tiempo ha habido una revalorización de los videojuegos simples, también llamados arcade, debido a su inclusión en sitios web y aplicaciones para dispositivos móviles.

En el encuentro se expondrá el proceso completo de programación de un videojuego arcade. La actividad implica una excusa sobre la cual trabajar, a modo introductorio, el paradigma de Programación Orientada a Objetos (OOP) y la metodología para encarar un proyecto de este género desde el punto de vista del desarrollo.

El proyecto se programará en lenguaje ActionScript3. No se requieren conocimientos previos siendo que el curso no hará especial hincapié en el lenguaje de programación, su sintaxis, o la Plataforma Flash. Daremos lugar a la experiencia de una propuesta metodológica que implica la solución de problemas paso a paso.

De nuevo… ¿Dónde y cuándo?

Lunes 18 y 25 de abril – 11.30 hs.
Mario Bravo 1050 – Universidad de Palermo.

El acceso a la charla es gratuito, pero hay que inscribirse.
Click aquí para inscribirse.

Excelente video explicativo

Es genial cuando se logra explicar un asunto complejo de forma simple. Aquí una explicación acerca del funcionamiento del buscador de Google.

Carga de archivos en AS3

Antes y después

El lengueja de programación de la Plataforma Flash ha pasado por 3 versiones: ActionScript 1, ActionScript, 2 y ActionScript 3. Como sabemos, varias cuestiones han cambiado en el paso de AS2 a AS3. La carga de archivos externos es una de ellas. Si bien la traducción literal es más o menos sencilla, vale la pena repasarla.

Lo que en AS2 solíamos hacer así:

loadMovie("archivo_secundario.swf", this);

En AS3 se debe hacer así (el ejemplo citado a continuación está copiado de la documentación de Adobe, y luego ligeramente modificado):

import flash.display.*;
import flash.net.URLRequest;
var cargador:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");
cargador.load(urlReq);
this.addChild(cargador);

Más allá de lo que se puede ver a golpe de vista, hay un par de cuestiones interesantes que trataré de sacar a la luz en este post.

El ejemplo de Adobe:

Antes de crear nuestro propio ejemplo —seguramente más complejo— repasaremos lo que hicieron los muchachos de Adobe. El ejemplo original se incluye en la documentación de la clase Loader (encargada de la carga de archivos externos en AS3).

Se importan las clases necesarias para la realización de la carga de un archivo externo. Nosotros lo haremos de forma detallada cuando nos toque crear nuestro propio ejemplo. Adobe ha sido un poco vago al importar todas las clases del paquete flash.display sin mayores precisiones (como podrán ver ustedes mismos, ésta no es una práctica muy amigable ya que el paquete flash.display contiene numerosas clases que no están siendo utilizadas por el resto del código).

// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;

Se crea una instancia de la clase Loader, que hará las veces de cargador. Este tipo de objeto (que hereda de la clase DisplayObjectContainer) tiene la funcionalidad necesaria para realizar la carga.

// crear el cargador:
var cargador:Loader = new Loader();

Se prepara una instancia de URLRequest, el tipo de objeto que espera recibir el método load de la clase Loader.

// preparar la URL request:
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");

Efectivamente se da la orden de carga por medio de la función load, incluyendo como parámetro a aquel objeto de tipo URLRequest que creamos anteriormente.

// se da la orden de carga:
cargador.load(urlReq);

Hasta aquí, la carga del archivo externo ya se puso en marcha, pero aún queda agregarlo a la escena. La siguiente línea de código agrega al cargador (de tipo Loader) a la escena, como child del root. Siendo que los objetos de clase Loader heredan de DisplayObjectContainer, tienen la posibilidad de agregarse a la Display List, al igual que un MovieClip o un Sprite.

// poner el cargador en escena:
this.addChild(cargador);

Recordemos el código completo, comentado:

// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;
// crear el cargador:
var cargador:Loader = new Loader();
// preparar la URL request:
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");
// dar la orden de carga:
cargador.load(urlReq);
// poner el cargador en escena:
this.addChild(cargador);

A primera vista, parece mucho más complejo que la escueta versión en AS2 (y lo es), pero en programación menos no siempre es más. El cambio a AS3 nos facilita la resolución de errores y la generación de diferentes funcionalidades. El código nuevo ganó en complejidad, pero también en coherencia, orientación a objetos, facilidad en la solución de errores y funcionalidad.

Veremos un poco más a fondo el asunto en la siguiente página…