Gaia Framework – ANT

Gaia, es un framework para crear páginas en Flash, que además es de codigo abierto y podemos adaptarlo a nuestras necesidades.
Facilita enormemente el desarrollo de páginas en flash, y reduce considerablemente el tiempo de desarrollo del mismo. Además posee muy buena documentación con lo que es muy fácil empezar a utilizarlo. Proporciona un panel (para la aplicación Adobe Flash) que se instala a través de una extensión de la aplicación Extension Manager de Adobe. En la versión 3.1.9, se ha introducido la opción de crear un proyecto de FlashDevelop o de Flex Builder. Una vez creado lo podemos importar a Flex y todo funcionando.
También es posible importar el proyecto Flex Builder en un Eclipse con FDT, que es nuestro caso.

Normalmente creamos el proyecto desde el panel que nos proporciona la extensión de Gaia, y compilamos los ficheros .fla, el objetivo de este artículo es compilar el proyecto sin la necesidad de la propia a aplicación Flash, de forma que sólo será necesario para la creación del proyecto.

Proyecto Gaia
Un proyecto de Gaia, consiste de los siguientes directorios:

src: código fuente, ficheros .as, aqui encontramos el main de la aplicación y las distintas páginas
lib: ficheros .fla, para compilar en entorno Flash.
templates: Plantillas.

Para compilar un proyecto Gaia, hay que compilar las clases Main.as, Preload.as y todas las páginas que en el proyecto aparecen con el nombre *Page.as.

Si descargas este fichero build.zip veras que en el hay un fichero build.xml que contiene los targets necesarios para compilar el proyecto, también hay un directorio build que contiene librerías necesarias para utilizar algunos task, como es el xmltask que nos servirá para leer el fichero site.xml que hay dentro de bin/xml ( directorio creado por Gaia).

Main.
El fichero Main.as es el primero que se carga y es el que se va a encargar de cargar las distintas páginas del proyecto. Cómo compilar un fichero se detalla en el artículo
Ant para desarrolladores flash – Task macrodef (parte 4)
de forma que para compilar el esta clase utilizamos el target compile-main del build.

<target name="compile-main">
     <echo message="compile-main"/>
     <compile source="${src}/Main.as" target="${bin}/Main" debug="false"/>
     <exec executable="${flashplayer}">
           <arg line="${bin}/Main.swf" />
      </exec>
</target>

Preload.
Antes de compilar el preload es necesario hacer algunas modificaciones ya que este si necesita objetos que se encuentran en la librería del fichero preload.fla. Si queremos evitar tener que abrir Flash tenemos dos opciones, no compilar el preload con ANT y hacerlo unicamente con Flash, o bien crear un preload en actionscript. En este ejemplo vamos dejar el preload en blanco para poder compilar todo el proyecto y más tarde crear un preload en Flash. Para hacer esto modificamos el fichero src/pages/Preload.as y lo dejamos como sigue:

package pages
{
	import com.gaiaframework.templates.AbstractPreloader;
	import com.gaiaframework.events.AssetEvent;

	public class Preloader extends AbstractPreloader
	{
		//public var scaffold:PreloaderScaffold;

		public function Preloader()
		{
			super();
			//scaffold = new PreloaderScaffold();
		}

		override public function transitionIn():void
		{
			//scaffold.transitionIn();
			transitionInComplete();
		}
		override public function transitionOut():void
		{
			//scaffold.transitionOut();
			transitionOutComplete();
		}
		override public function onProgress(event:AssetEvent):void
		{
			//scaffold.onProgress(event);
		}
	}
}

De esta forma evitamos que se utilice la clase PreloaderScaffold que es una clase enlazada con el fichero preload.fla.

Creamos el target para compilar el preload:

	<target name="compile-preloader">
		<echo message="compile-preloader"/>
		<compile source="${pages}/Preloader.as"
			target="${bin}/preload"
			debug="false" ></compile>
	</target>

Páginas.
Las clases de las páginas en un proyecto gaia, se encuentran en el mismo lugar que el preload, dentro del paquete pages, este podría ser distinto si cuando hemos creado el proyecto hemos especificado una ruta distinta.

Las clases tienen el sufijo Page, y dentro del fichero site.xml, se definen mediante la etiqueta page, así que tenemos que recorrer el fichero site.xml, encontrar las etiquetas page, y compilar la clase correspondiente, para ello utilizamos el siguiente target:

	<target name="compile-pages">
		<echo message="compile-pages"/>
		<xmltask source="${sitexml}">
			<call path="//page">
				<param name="id" path="@id" default="NO ID"/>
				<param name="dest" path="@src" default="NO ID"/>
				<actions>
				  	<var name="fuppercase" unset="true"/>
				  	<first-uppercase property="fuppercase" input="@{id}"/>
					<compile source="${pages}/${fuppercase}Page.as"
						target="${bin}/@{id}"
						debug="false"/>
				</actions>
			</call>
		</xmltask>
	</target>

y para concluir creamos el target main que se encargar de ejecutar los correspondientes:

	<target name="main" depends="compile-pages, compile-preloader, compile-main">
		<echo message="main"/>
	</target>

Descargar

This entry was posted in ANT, gaia and tagged , . Bookmark the permalink.

4 Responses to Gaia Framework – ANT

  1. Pingback: Gaia Framework - Creación y compilacion de un proyecto sin Flash | Desarrollo Flash

  2. Excelente guia , me has ahorrado muchos quebraderos de cabeza :) .
    El problema que tengo es que dentro de un fla tengo objetos en la libreria y ant me da un error de llamada a un metodo no definido :(
    ¿Como se puede solucionar esto? Supongo que habra alguna manera de compilar con ant y poder usar objetos de la libreria.

    Gracias por todas tus guias, muy utiles.

  3. Excelente guia , me has ahorrado muchos quebraderos de cabeza :) .
    El problema que tengo es que dentro de un fla tengo objetos en la libreria y ant me da un error de llamada a un metodo no definido :(
    ¿Como se puede solucionar esto? Supongo que habra alguna manera de compilar con ant y poder usar objetos de la libreria.

    Gracias por todas tus guias, muy utiles.

    mail correcto: pepe.carnicero@gmail (el formulario no acepta ‘.’ en el campo mail)

  4. admin says:

    Hasta donde yo se no se pueden abrir ficheros flash a no ser que tengas la herramienta de Adobe, creo que la solución pasaria por meter esos objetos en una libreria swc y compilarlo despues con ant.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>