Una aplicación sencilla

En esta sección se describen los pasos para crear una sencilla aplicación ActionScript 3.0 con los componentes de Flash y la herramienta de edición de Flash. El ejemplo se ofrece como un archivo FLA con el código ActionScript incluido en la línea de tiempo y también como un archivo de clase ActionScript externo con un archivo FLA que contiene sólo los componentes de la biblioteca. Por lo general, se desarrollarán aplicaciones más extensas con archivos de clase externos para poder compartir código entre las clases y aplicaciones, y para facilitar el mantenimiento de las aplicaciones. Para más información sobre la programación con ActionScript 3.0, consulte Programación con ActionScript 3.0 .

Diseño de la aplicación

El primer ejemplo de una aplicación de componentes ActionScript es una variación de la aplicación "Hello World" estándar, de modo que su diseño es bastante sencillo:

  • La aplicación se denominará Greetings.

  • Utiliza un componente TextArea para mostrar un saludo que inicialmente es "Hello World".

  • Utiliza un componente ColorPicker que permite cambiar el color del texto.

  • Utiliza tres componentes RadioButton que permiten definir el tamaño del texto en pequeño, mayor o máximo.

  • Utiliza un componente ComboBox que permite seleccionar un saludo distinto en una lista desplegable.

  • La aplicación utiliza componentes del panel Componentes y también crea elementos de aplicación a través de código ActionScript.

    Teniendo en cuenta esta definición, ya puede empezar a crear la aplicación.

Creación de la aplicación Greetings

A continuación se describen los pasos para crear la aplicación Greetings utilizando la herramienta de edición de Flash para crear un archivo FLA, colocar componentes en el escenario y añadir código ActionScript a la línea de tiempo.

Crear la aplicación Greetings en un archivo FLA:

  1. Seleccione Archivo > Nuevo.

  2. En el cuadro de diálogo Nuevo documento, seleccione Archivo de Flash (ActionScript 3.0) y haga clic en Aceptar.

    Se abre una nueva ventana de Flash.

  3. Seleccione Archivo > Guardar, asigne al archivo de Flash el nombre Greetings.fla y haga clic en el botón Guardar.

  4. En el panel Componentes de Flash, seleccione un componente TextArea y arrástrelo al escenario.

  5. En la ventana Propiedades, con el componente TextArea seleccionado en el escenario, escriba aTa como nombre de instancia e introduzca la siguiente información:

    • Introduzca 230 en el valor An. (anchura).

    • Introduzca 44 en el valor Al. (altura).

    • Introduzca 165 en el valor X (posición horizontal).

    • Introduzca 57 en el valor Y (posición vertical).

    • Introduzca Hello World! en el parámetro de texto, en la ficha Parámetros.

  6. Arrastre un componente ColorPicker al escenario, colóquelo a la izquierda del componente TextArea y asígnele el nombre de instancia txtCp. Introduzca la siguiente información en el inspector de propiedades:

    • Introduzca 96 en el valor X.

    • Introduzca 72 en el valor Y.

  7. Arrastre tres componentes RadioButton al escenario, de forma consecutiva, y asígneles los nombres de instancia smallRb , largerRb y largestRb . Introduzca la siguiente información para dichos componentes en el inspector de propiedades:

    • Introduzca 100 en el valor de anchura y 22 en el valor de altura en cada uno de ellos.

    • Introduzca 155 en el valor X.

    • Introduzca 120 en el valor Y de smallRb, 148 en el de largerRb y 175 en el de largestRb.

    • Introduzca fontRbGrp en el parámetro groupName de cada uno de ellos.

    • Introduzca etiquetas en la ficha Parámetros de Small , Larger , Largest .

  8. Arrastre un componente ComboBox al escenario y asígnele el nombre de instancia msgCb . Introduzca la siguiente información para dicho componente en el inspector de propiedades:

    • Introduzca 130 en el valor de anchura.

    • Introduzca 265 en el valor X.

    • Introduzca 120 en el valor Y.

    • En la ficha Parámetros, introduzca Greetings en el parámetro prompt.

    • Haga doble clic en el campo de texto del parámetro dataProvider para abrir el cuadro de diálogo Valores.

    • Haga clic en el signo más y reemplace el valor de la etiqueta con Hello World!

    • Repita el paso anterior para añadir los valores de etiqueta Have a nice day! y Top of the Morning!

    • Haga clic en Aceptar para cerrar el cuadro de diálogo Valores.

  9. Guarde el archivo.

  10. Si aún no está abierto, abra el panel Acciones presionando F9 o seleccionando Acciones en el menú Ventana. Haga clic en el primer fotograma de la línea de tiempo principal y añada el siguiente código al panel Acciones:

    import flash.events.Event; 
    import fl.events.ComponentEvent; 
    import fl.events.ColorPickerEvent; 
    import fl.controls.RadioButtonGroup; 
     
    var rbGrp:RadioButtonGroup = RadioButtonGroup.getGroup("fontRbGrp"); 
    rbGrp.addEventListener(MouseEvent.CLICK, rbHandler); 
    txtCp.addEventListener(ColorPickerEvent.CHANGE,cpHandler); 
    msgCb.addEventListener(Event.CHANGE, cbHandler);

    Las primeras tres líneas importan las clases de eventos que utiliza la aplicación. Un evento se produce cuando un usuario interactúa con uno de los componentes. Las siguientes cinco líneas registran controladores de eventos para los eventos que la aplicación desea detectar. Un evento click se produce en un componente RadioButton cuando un usuario hace clic en él. Un evento change se produce cuando un usuario selecciona un color distinto en el componente ColorPicker. Un evento change se produce en el componente ComboBox cuando un usuario elige otro saludo de la lista desplegable.

    La cuarta línea importa la clase RadioButtonGroup para que la aplicación pueda asignar un detector de eventos en el grupo de componentes RadioButton en lugar de asignar el detector a cada botón de forma individual.

  11. Añada la siguiente línea de código al panel Acciones para crear el objeto TextFormat tf que la aplicación utiliza para cambiar las propiedades de estilo size y color del texto en el componente TextArea.

    var tf:TextFormat = new TextFormat();
  12. Añada el siguiente código para crear la función de gestión de eventos rbHandler. Esta función gestiona un evento click cuando un usuario hace clic en uno de los componentes RadioButton.

    function rbHandler(event:MouseEvent):void { 
        switch(event.target.selection.name) { 
            case "smallRb": 
                tf.size = 14; 
                break; 
            case "largerRb": 
                tf.size = 18; 
                break; 
            case "largestRb": 
                tf.size = 24; 
                break; 
            } 
            aTa.setStyle("textFormat", tf); 
    }

    Esta función utiliza una sentencia switch para examinar la propiedad target del objeto event con el fin de determinar cuál de los componentes RadioButton activó el evento. La propiedad currentTarget contiene el nombre del objeto que activó el evento. Según cuál sea el componente RadioButton en el que haya hecho clic el usuario, la aplicación cambia el tamaño del texto en el componente TextArea a 14, 18 ó 24 puntos.

  13. Añada el siguiente código para implementar la función cpHandler() , que gestiona un cambio en el valor de ColorPicker:

    function cpHandler(event:ColorPickerEvent):void { 
        tf.color = event.target.selectedColor; 
        aTa.setStyle("textFormat", tf); 
    }

    Esta función establece la propiedad color del objeto TextFormat tf en el color seleccionado en ColorPicker y luego llama a setStyle() para aplicarlo al texto en la instancia aTa de TextArea.

  14. Añada el siguiente código para implementar la función cbHandler() , que gestiona un cambio en la selección de ComboBox:

    function cbHandler(event:Event):void { 
        aTa.text = event.target.selectedItem.label; 
    }

    Esta función simplemente reemplaza el texto de TextArea con el texto seleccionado en ComboBox, event.target.selectedItem.label .

  15. Seleccione Control > Probar película o presione Control+Intro para compilar el código y probar la aplicación Greetings.

    En la siguiente sección se muestra cómo generar la misma aplicación con una clase ActionScript externa y un archivo FLA que sólo contiene los componentes necesarios en la biblioteca.

Para crear la aplicación Greetings2 con un archivo de clase externo:

  1. Seleccione Archivo > Nuevo.

  2. En el cuadro de diálogo Nuevo documento, seleccione Archivo de Flash (ActionScript 3.0) y haga clic en Aceptar.

    Se abre una nueva ventana de Flash.

  3. Seleccione Archivo > Guardar, asigne al archivo de Flash el nombre Greetings2.fla y haga clic en el botón Guardar.

  4. Arrastre cada uno de los componentes siguientes del panel Componentes a la biblioteca:

    • ColorPicker

    • ComboBox

    • RadioButton

    • TextArea

      El archivo SWF compilado utilizará todos estos activos, de forma que hay que añadirlos a la biblioteca. Arrastre los componentes a la parte inferior del panel Biblioteca. A medida que añada estos componentes a la biblioteca, se añadirán automáticamente otros activos (como List, TextInput y UIScrollBox).

  5. En la ventana Propiedades, escriba Greetings2 en Clase de documento.

    Si Flash muestra una advertencia indicando que "no se pudo encontrar una definición para la clase del documento", páselo por alto. Definirá la clase Greetings2 en los siguientes pasos. Esta clase define la funcionalidad principal de la aplicación.

  6. Guarde el archivo Greetings2.fla.

  7. Seleccione Archivo > Nuevo.

  8. En el cuadro de diálogo Nuevo documento, seleccione Archivo ActionScript y haga clic en Aceptar.

    Se abre una nueva ventana Script.

  9. Añada el siguiente código a la ventana Script:

    package { 
        import flash.display.Sprite; 
        import flash.events.Event; 
        import flash.events.MouseEvent; 
        import flash.text.TextFormat; 
        import fl.events.ComponentEvent; 
        import fl.events.ColorPickerEvent; 
        import fl.controls.ColorPicker; 
        import fl.controls.ComboBox; 
        import fl.controls.RadioButtonGroup; 
        import fl.controls.RadioButton; 
        import fl.controls.TextArea; 
        public class Greetings2 extends Sprite { 
            private var aTa:TextArea; 
            private var msgCb:ComboBox; 
            private var smallRb:RadioButton; 
            private var largerRb:RadioButton; 
            private var largestRb:RadioButton; 
            private var rbGrp:RadioButtonGroup; 
            private var txtCp:ColorPicker; 
            private var tf:TextFormat = new TextFormat(); 
            public function Greetings2() {    

    El script define una clase de ActionScript 3.0 denominada Greetings2. El script realiza lo siguiente:

    • Importa las clases que se utilizarán en el archivo. Normalmente, estas sentencias import se añadirían a medida que se hace referencia a las distintas clases en el código pero, para ser breves, en este ejemplo se importan todas en un solo paso.

    • Declara variables que representan los distintos tipos de objetos de componente que se añadirán al código. Otra variable crea el objeto TextFormat tf .

    • Define una función constructora, Greetings2() , para la clase. En los siguientes pasos se añadirán líneas a esta función y otros métodos a la clase.

  10. Seleccione Archivo > Guardar, asigne al archivo el nombre Greetings2.as y haga clic en el botón Guardar.

  11. Añada las siguientes líneas de código a la función Greeting2() :

        createUI(); 
        setUpHandlers(); 
    }

    La función debería tener el siguiente aspecto:

    public function Greetings2() { 
        createUI(); 
        setUpHandlers(); 
    }
  12. Añada las siguientes líneas de código después de la llave de cierre del método Greeting2() :

    private function createUI() { 
        bldTxtArea(); 
        bldColorPicker(); 
        bldComboBox(); 
        bldRadioButtons(); 
    } 
    private function bldTxtArea() { 
        aTa = new TextArea(); 
        aTa.setSize(230, 44); 
        aTa.text = "Hello World!"; 
        aTa.move(165, 57); 
        addChild(aTa); 
    } 
    private function bldColorPicker() { 
        txtCp = new ColorPicker(); 
        txtCp.move(96, 72); 
        addChild(txtCp); 
    } 
    private function bldComboBox() { 
        msgCb = new ComboBox(); 
        msgCb.width = 130; 
        msgCb.move(265, 120); 
        msgCb.prompt = "Greetings"; 
        msgCb.addItem({data:"Hello.", label:"English"});             
        msgCb.addItem({data:"Bonjour.", label:"Français"});             
        msgCb.addItem({data:"¡Hola!", label:"Español"});             
        addChild(msgCb); 
    } 
    private function bldRadioButtons() { 
        rbGrp = new RadioButtonGroup("fontRbGrp"); 
        smallRb = new RadioButton(); 
        smallRb.setSize(100, 22); 
        smallRb.move(155, 120); 
        smallRb.group = rbGrp; //"fontRbGrp"; 
        smallRb.label = "Small"; 
        smallRb.name = "smallRb"; 
        addChild(smallRb); 
        largerRb = new RadioButton(); 
        largerRb.setSize(100, 22); 
        largerRb.move(155, 148); 
        largerRb.group = rbGrp; 
        largerRb.label = "Larger"; 
        largerRb.name = "largerRb"; 
        addChild(largerRb); 
        largestRb = new RadioButton(); 
        largestRb.setSize(100, 22); 
        largestRb.move(155, 175); 
        largestRb.group = rbGrp; 
        largestRb.label = "Largest"; 
        largestRb.name = "largestRb"; 
        addChild(largestRb); 
    }

    Estas líneas realizan lo siguiente:

    • Crean instancias de los componentes que se utilizan en la aplicación.

    • Definen el tamaño, la posición y las propiedades de cada componente.

    • Añaden cada componente al escenario, a través del método addChild() .

  13. Después de la llave de cierre del método bldRadioButtons() , añada el siguiente código para el método setUpHandlers() :

    private function setUpHandlers():void { 
        rbGrp.addEventListener(MouseEvent.CLICK, rbHandler); 
        txtCp.addEventListener(ColorPickerEvent.CHANGE,cpHandler); 
        msgCb.addEventListener(Event.CHANGE, cbHandler); 
    } 
    private function rbHandler(event:MouseEvent):void { 
        switch(event.target.selection.name) { 
            case "smallRb": 
                tf.size = 14; 
                break; 
            case "largerRb": 
                tf.size = 18; 
                break; 
            case "largestRb": 
                tf.size = 24; 
                break; 
        } 
        aTa.setStyle("textFormat", tf); 
    } 
    private function cpHandler(event:ColorPickerEvent):void { 
        tf.color = event.target.selectedColor; 
        aTa.setStyle("textFormat", tf); 
    } 
    private function cbHandler(event:Event):void { 
        aTa.text = event.target.selectedItem.data; 
    } 
    } 
    }

    Estas funciones definen los detectores de eventos de los componentes.

  14. Seleccione Archivo > Guardar para guardar el archivo.

  15. Seleccione Control > Probar película o presione Control+Intro para compilar el código y probar la aplicación Greetings2.

Desarrollo y ejecución de ejemplos posteriores

Después de desarrollar y ejecutar la aplicación Greetings, habrá adquirido los conocimientos básicos que necesita para ejecutar los demás ejemplos de código presentados en este manual. En ellos se resaltará y explicará el código ActionScript 3.0 relevante de cada ejemplo y debería poder cortar y pegar cada uno de los ejemplos de este manual en un archivo FLA, compilarlo y ejecutarlo.