viernes, 24 de octubre de 2014

Uso de Haxelib 2da Parte




Cualquier librería que Haxe tenga instalada esta disponible para que el compilador haga uso de ella mediante el parámetro lib.

El argumento -lib <archivo> suele ser el primer argumento pasado al compilador.





En el siguiente ejemplo, hacemos uso de una librería llamada "random" que provee una serie de funciones o métodos para lograr diversos efectos aleatorios.




package;

class Aleatorio {
  static public function main() {
    var Azar = Random.fromArray([1, 2, 3, 4, 5, 6, 7, 8, 9]);
    trace(Azar);
  }
}



Básicamente lo que hace el pequeño bloque de código es, mediante el uso de la función "random", elegir un valor al azar dentro de una matriz o array.

Probemos que sucede al compilarlo:

Si quisiésemos compilar como venimos haciendo actualmente, haxe nos devolverá el siguiente error:



Que es precisamente de lo que estamos hablando en esa entrada. Falta pasarle al compilador algún argumento para que pueda encontrar la función.

Probemos nuevamente pero con el argumento correcto:




Otro error..pero esta vez es distinto. El compilador nos está indicando que no encuentra la librería llamada random..y presume que no está instalada.
Instalemos random como nos sugiere el compilador




La tercera es la vencida dice un dicho popular..bien, pongámoslo a prueba:



Esta vez sí. Las tres ejecuciones con neko son para verificar la aleatoriedad del algoritmo.

A partir de este punto, las cosas comienzan a ponerse un poco mas difíciles de manejar. Cuando comenzamos a utilizar librerías externas, las cosas pueden salirse de control muy rápido.

Lo ideal a esta altura sería comenzar a utilizar algún tipo de IDE para organizarnos bien.
El problema al trabajar con una interfaz de desarrollo es que a veces, y sobre todo con software de uso libre, las cosas no salen como uno quiere. Si a ello le sumamos que las herramientas descriptas en este blog no tienen soporte en nuestro idioma, puede llegar a ser frustrante.

También es muy importante comprender que es lo que sucede en segundo plano cuando en nuestra interfaz de desarrollo favorita presionamos el pequeño triangulito de "ejecutar"..aquí estamos haciendo.
Es importante en mi opinión que estos conceptos queden claros, para descartar luego fallas que se le atribuyen al código que uno escribe y luego se descubre que son externas.

Preparación:

Vamos a necesitar algunos pasos previos antes de poder compilar nuestro ejemplo final sin el uso de un IDE (que a su vez tiene "mini" ejemplos digamos que vamos a ir viendo).

1) Instalación de Lime.



Lime es la primer capa de abstracción que nos vamos a encontrar entre Haxe y nuestro código. Nos va a permitir (junto con otras bibliotecas o librerías) que podamos manejar ventanas, entradas, audio, etc. de forma sencilla y rápida.

Es gratuito y de dominio público (como Haxe). Puede descargarse la última versión desde esta página o visitar el repositorio alojado en GitHub:

https://github.com/openfl/lime


La instalación y prueba de lime requiere de ciertos pasos, pero el primero como siempre, es el uso de haxelib.


Como hemos visto hasta ahora, la instalación comienza con la descarga del paquete.





Seguido de la instalación propiamente dicha:



Puede verse en la imagen, que la documentación se instala junto con Lime. Lamentablemente sólo en inglés.

Luego, procedemos a configurarlo: $> haxelib run lime setup

y por último una prueba invocándolo solamente:



Para trabajar con Flash, HTML5 o Neko, no necesitamos hacer nada más.

Ahora bien, si el objetivo es portar nuestro código hacia Android o Windows, necesitamos instalar algunas librerías extra. Por ahora nuestra instalación de lime quedará ahí.

Una última prueba de Lime consiste en ejecutar un ejemplo que viene incluido con la distribución: (en realidad vienen varios, pero este es el más "visual" digamos).

Desde la línea de comandos tipeamos: $> lime create lime:simpleimage

El proceso nos creará una carpeta llamada "simpleimage" a la cual debemos acceder para ejecutar el ejemplo. Dentro de la carpeta tipeamos:


$..\simpleimage> lime test flash

Si tienen instalado el depurador de flash asociado a los archivos .swf, lime lo ejecutará de forma automática mostrando su resultado.


De lo contrario, pueden encontrar el archivo .swf dentro de la carpeta "...Export\flash" e incrustarlo en una página web para verlo.

También podemos ejecutar la misma sentencia reemplazando el parámetro "flash" por html5 por ejemplo. 

Ello nos generará una página web con la imagen incrustada en el código (no se abrirá automáticamente, pero pueden buscar el resultado en la carpeta html5 de la misma forma que con el ejemplo en flash.

Neko en este caso, no funcionará ya que no soporta la visualización de imágenes.

Una nota antes de terminar: Si su objetivo como programadores es trabajar con Adobe Flash, les recomiendo que descarguen e instalen el depurador.(vamos a utilizarlo bastante más adelante)

Pueden descargarlo desde aquí

Antes de instalarlo, asegúrense de haber desisntalado todos los reproductores (que por lo general van 2 o tres versiones más actualizadas). Una vez instalado el depurador, pueden volver a reinstalar la ultima versión del reproductor que necesiten.
Luego, pueden asociar los archivos .swf con el depurador para abrirlos rápidamente sin necesidad de generar una página web para ello.


Próxima entrada, instalamos OpenFL y HaxeUI. Probamos como funcionan.