Archivos de June, 2010

Enamorado de Signals
Sunday, June 13th, 2010

Y para muestra un botón :)

Actionscript:
package view.ui.common
{
    import com.greensock.TweenMax;
    import flash.events.MouseEvent;
    import org.osflash.signals.natives.NativeSignal;

    import flash.display.Sprite;

    /**
     * @author robot04
     */

    public class BasicButton extends Sprite
    {
        private var overed:NativeSignal;
        private var outed:NativeSignal;
        public var clicked:NativeSignal;
       
        public function BasicButton()
        {
            buttonMode = true;
            mouseChildren = false;
            overed = new NativeSignal(this, MouseEvent.MOUSE_OVER);
            outed = new NativeSignal(this, MouseEvent.MOUSE_OUT);
            clicked = new NativeSignal(this, MouseEvent.CLICK, MouseEvent);
        }
       
        public function removeListeners():void
        {
            overed.remove(onOver);
            outed.remove(onOut);
        }
       
        public function addListeners():void
        {
            overed.add(onOver);
            outed.add(onOut);
        }

        protected function onOut(event:MouseEvent):void
        {
            TweenMax.to(this, .4, {alpha:1});
        }

        protected function onOver(event:MouseEvent):void
        {
            TweenMax.to(this, .4, {alpha:.8});
        }
    }
}

Robert Penner - Signals

Reforest
Sunday, June 13th, 2010

Reforest

Reforest es una aplicación desarrollada en Adobe AIR que crea estructuras de proyecto a través de plantillas.

Estas plantillas pueden ser configuradas al gusto de cada uno para crear el árbol de carpetas y archivos que formarán nuestro directorio de proyecto.
El ejemplo que viene con Reforest, cuando lo descargáis, es un MVC simple con Flash y AS3, pero se puede utilizar para cualquier tipo de proyecto, diseño, .php, html, etc

La plantilla, a partir de ahora semilla (.seed), está compuesta por los siguientes nodos:

info

Info es la parte de la semilla que nos va a proveer de la información de ésta, como autor, fecha, nombre, descripción, etc.

Esta es la estructura:

XML:
<seed>
    <info>
        <author>Robot04</author>
        <date>09/09/09</date>
        <name>Example Template</name>
        <description>Estructura de proyecto base con vista y controlador</description>
        <notes>Acuérdate de borrar el árbol de main.fla :) </notes>
    </info>
</seed>

Después encontramos la estructura.

structure

Structure es la etiqueta que va a contenter nuestro proyecto, y en ella podremos crear y copiar los archivos y directorios que solamos utilizar frecuentemente en nuestros proyectos.

Dentro de structure podremos utilizar dos tipos de etiquetas diferentes:

  • folder
  • file

folder

Folder es la encargada de crear los directorios, tiene un sólo parámetro obligatorio name.
Si el valor del parámetro name es projectName, el valor se sustituirá en tiempo de ejecución por el nombre que elijamos para el proyecto.

XML:
<seed>
    <info>
        <author>Robot04</author>
        <date>09/09/09</date>
        <name>Example Template</name>
        <description>Estructura de proyecto base con vista y controlador</description>
        <notes>Acuérdate de borrar el árbol de main.fla :) </notes>
    </info>
    <structure>
        <folder name="projectName">
        </folder>
    </structure>
</seed>

file

El nodo file se encarga de copiar archivos y carpetas a nuestro directorio de proyecto.

Tiene dos parámetros obligatorios:

  • name
  • route

Name indica el nombre con el cual se guardará el archivo en nuestro directorio de proyecto y route es el path al archivo que se va a copiar.

XML:
<seed>
    <info>
        <author>Robot04</author>
        <date>09/09/09</date>
        <name>Example Template</name>
        <description>Estructura de proyecto base con vista y controlador</description>
        <notes>Acuérdate de borrar el árbol de main.fla :) </notes>
    </info>
    <structure>
        <folder name="projectName">
            <folder name="flash">
            <file name="main.fla" route="files/flash/main.fla" />
        </folder>
        </folder>
</seed>

Además de esto y esta es la joyita de Reforest, el nodo file tiene un atributo opcional parse.

Si le decimos a Reforest que parsee el documento con el atributo parse="true". Reforest buscará en esos archivos variables de Reforest y nos permitirá durante la creación del proyecto cambiar sus valores por otros al vuelo.

Las variables de Reforest tienen el siguiente aspecto:
%RFST:Variable=Valor%

Por ejemplo un uso básico en un archivo html podría ser:
<title>%RFST:title=titulo%</title>

o en un .as podríamos ajustar las características de nuestro fla de la siguiente manera:

Actionscript:
[SWF(width="%RFST:SWFWidth=1004%", height="%RFST:SWFHeight=680%", backgroundColor="%RFST:SWFBGColor=#FFFFFF%", frameRate="%RFST:SWFFramerate=30%")]

Espero que lo disfrutéis y si tenéis sugerencias o dudas, ya sabéis :)

PD: Junto con el instalador de Reforest encontraréis más información y un ejemplo de uso.