Een eenvoudige toepassing

In deze sectie staan de stappen waarmee u een eenvoudige ActionScript 3.0-toepassing kunt maken met Flash-componenten en het Flash-ontwerpgereedschap. Het voorbeeld wordt gegeven als een FLA-bestand met ActionScript-code op de tijdlijn en ook als een extern ActionScript-klassebestand met een FLA-bestand dat alleen de componenten in de bibliotheek bevat. Over het algemeen kunt u het beste grotere toepassingen ontwikkelen met externe klassebestanden zodat u code tussen klassen en toepassingen kunt delen en uw toepassingen eenvoudiger zijn te onderhouden. Raadpleeg ActionScript 3.0 programmeren voor meer informatie over programmeren in ActionScript 3.0.

Ontwerp van de toepassing

Ons eerste voorbeeld van een toepassing met ActionScript-componenten is een variatie op de standaardtoepassing ‘Hallo wereld’ en dus is het ontwerp vrij eenvoudig:

  • De toepassing wordt Greetings genoemd.

  • Er wordt een TextArea gebruikt om een begroeting weer te geven die in eerste instantie Hallo wereld is.

  • Er wordt een ColorPicker gebruikt waarmee de kleur van de tekst kan worden gewijzigd.

  • Er worden drie RadioButtons gebruikt waarmee u de grootte van de tekst kunt instellen op klein, groter of grootst.

  • Er wordt een ComboBox gebruikt waarmee u een andere begroeting uit een vervolgkeuzelijst kunt selecteren.

  • De toepassing gebruikt componenten uit het deelvenster Componenten en maakt ook toepassingselementen via ActionScript-code.

    Nu deze definitie is vastgelegd, kunt u beginnen met het bouwen van de toepassing.

De toepassing Greetings maken

Met de volgende stappen wordt de toepassing Greetings gemaakt met het Flash-ontwerpgereedschap. U maakt een FLA-bestand, plaatst componenten in het werkgebied en voegt ActionScript-code aan de tijdlijn toe.

De toepassing Greetings in een FLA-bestand maken:

  1. Selecteer Bestand > Nieuw.

  2. Selecteer in het dialoogvenster Nieuw document het type Flash-bestand (ActionScript 3.0) en klik op OK.

    Er wordt een nieuw Flash-venster geopend.

  3. Selecteer Bestand > Opslaan, geef het Flash-bestand de naam Greetings.fla en klik op Opslaan.

  4. Selecteer in het deelvenster Componenten van Flash een component TextArea en sleep deze naar het werkgebied.

  5. Selecteer de TextArea in het werkgebied en typ in het venster Eigenschappen aTa voor de instantienaam en voer de volgende informatie in:

    • Voer 230 in voor de waarde B (breedte).

    • Voer 44 in voor de waarde H (hoogte).

    • Voer 165 in voor de waarde X (horizontale positie).

    • Voer 57 in voor de waarde Y (verticale positie).

    • Voer Hallo wereld! in voor de parameter text op het tabblad Parameters.

  6. Sleep een component ColorPicker naar het werkgebied, plaats het links van de TextArea en geef de component de instantienaam txtCp. . Voer de volgende informatie in Eigenschapcontrole in:

    • Voer 96 in voor de waarde X.

    • Voer 72 in voor de waarde Y.

  7. Sleep drie componenten RadioButton naar het werkgebied en geef ze de instantienamen smallRb , largerRb en largestRb . Voer in Eigenschapcontrole de volgende informatie voor de componenten in:

    • Voer 100 voor de waarde B en 22 voor de waarde H in.

    • Voer 155 in voor de waarde X.

    • Voer 120 voor de waarde Y voor smallRb, 148 voor largerRb en 175 voor largestRb in.

    • Voer fontRbGrp voor de parameter groupName van elke component in.

    • Voer labels in voor elke waarde op het tabblad Parameters voor Klein , Groter , Grootst .

  8. Sleep een ComboBox naar het werkgebied en geef deze de instantienaam msgCb . Voer in Eigenschapcontrole de volgende informatie in:

    • Voer 130 in voor de waarde B.

    • Voer 265 in voor de waarde X.

    • Voer 120 in voor de waarde Y.

    • Voer op het tabblad Parameters Begroetingen in voor de parameter prompt.

    • Dubbelklik op het tekstveld voor de parameter dataProvider om het dialoogvenster Waarden te openen.

    • Klik op het plusteken en vervang de labelwaarde door Hallo wereld!

    • Herhaal de vorige stap om de labelwaarden Prettige dag! en Goedemorgen! toe te voegen.

    • Klik op OK om het dialoogvenster Waarden te sluiten.

  9. Sla het bestand op.

  10. Open het deelvenster Handelingen, indien dit nog niet het geval is, met F9 of door Handelingen in het menu Venster te selecteren. Klik op frame 1 van de hoofdtijdlijn en voer de volgende code in het deelvenster Handelingen in:

    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);

    Met de eerste drie regels worden de gebeurtenisklassen die de toepassing gebruikt geïmporteerd. Een gebeurtenis vindt plaats wanneer de gebruiker een van de componenten gebruikt. In de volgende vijf regels worden gebeurtenishandlers geregistreerd voor de gebeurtenissen waarnaar de toepassing wil luisteren. Er vindt een gebeurtenis click voor een RadioButton plaats wanneer de gebruiker erop klikt. De gebeurtenis change vindt plaats wanneer de gebruiker een andere kleur in de ColorPicker selecteert. De gebeurtenis change vindt plaats op de ComboBox wanneer de gebruiker een andere begroeting in de vervolgkeuzelijst kiest.

    In de vierde regel wordt de klasse RadioButtonGroup geïmporteerd zodat de toepassing een gebeurtenislistener kan toewijzen aan de groep RadioButtons in plaats van de listener aan elke knop afzonderlijk toe te wijzen.

  11. Voeg de volgende coderegel toe aan het deelvenster Handelingen om het TextFormat-object tf te maken dat door de toepassing wordt gebruikt om de stijleigenschappen size en color van de tekst in de TextArea te wijzigen.

    var tf:TextFormat = new TextFormat();
  12. Voeg de volgende code toe om de gebeurtenisafhandelingsfunctie rbHandler te maken. Deze functie handelt de gebeurtenis click af wanneer de gebruiker op een van de componenten RadioButton klikt.

    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); 
    }

    Deze functie gebruikt een instructie switch om de eigenschap target van het object event te controleren om te bepalen welke RadioButton de gebeurtenis heeft geactiveerd. De eigenschap currentTarget bevat de naam van het object dat de gebeurtenis heeft geactiveerd. Afhankelijk van de RadioButton waarop de gebruiker heeft geklikt, wijzigt de toepassing de tekengrootte van de tekst in de TextArea in 14, 18 of 24 punten.

  13. Voeg de volgende code toe om de functie cpHandler() die een wijziging in de waarde in de ColorPicker afhandelt, te implementeren:

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

    Deze functie stelt de eigenschap color van het TextFormat-object tf in op de kleur die in de ColorPicker is geselecteerd en roept vervolgens setStyle() aan om dit toe te passen op de tekst in de TextArea-instantie aTa .

  14. Voeg de volgende code toe om de functie cbHandler() die een wijziging in de selectie in de ComboBox afhandelt, te implementeren:

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

    Deze functie vervangt de tekst in de TextArea door de geselecteerde tekst in de ComboBox, event.target.selectedItem.label .

  15. Selecteer Besturing > Film testen of druk op Ctrl+Enter om de code te compileren en de toepassing Greetings te testen.

    In de volgende sectie wordt getoond hoe u dezelfde toepassing kunt bouwen met een externe ActionScript-klasse en een FLA-bestand met alleen de vereiste componenten in de bibliotheek.

De toepassing Greetings2 maken met een extern klassebestand:

  1. Selecteer Bestand > Nieuw.

  2. Selecteer in het dialoogvenster Nieuw document het type Flash-bestand (ActionScript 3.0) en klik op OK.

    Er wordt een nieuw Flash-venster geopend.

  3. Selecteer Bestand > Opslaan, geef het Flash-bestand de naam Greetings2.fla en klik op Opslaan.

  4. Sleep de volgende componenten van het deelvenster Componenten naar de bibliotheek:

    • ColorPicker

    • ComboBox

    • RadioButton

    • TextArea

      Het gecompileerde SWF-bestand gebruikt al deze elementen, dus u moet ze aan de bibliotheek toevoegen. Sleep de componenten naar de onderzijde van het deelvenster Bibliotheek. Wanneer u deze componenten aan de bibliotheek toevoegt, worden andere elementen (zoals List, TextInput en UIScrollBox) automatisch toegevoegd.

  5. Typ in het deelvenster Eigenschappen bij Documentklasse Greetings2 .

    Wanneer Flash een waarschuwing geeft met de tekst ‘Kan geen definitie voor de documentklasse vinden’, kunt u deze negeren. U definieert de klasse Greetings2 in de volgende stappen. Deze klasse definieert de hoofdfunctionaliteit voor de toepassing.

  6. Sla het bestand Greetings2.fla op.

  7. Selecteer Bestand > Nieuw.

  8. Selecteer ActionScript-bestand in het dialoogvenster Nieuw document en klik op OK.

    Er wordt een nieuw Script-venster geopend.

  9. Voeg de volgende code aan het Script-venster toe:

    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() {    

    In het script wordt een ActionScript 3.0-klasse met de naam Greetings2 gedefinieerd. Het script doet het volgende:

    • Er worden klassen geïmporteerd die we in het bestand gaan gebruiken. Meestal voegt u deze import instructies toe wanneer u in de code naar verschillende klassen verwijst, maar om het kort te houden worden ze in dit voorbeeld in één stap geïmporteerd.

    • Er worden variabelen gedeclareerd. Deze staan voor verschillende soorten componentobjecten die we aan de code toevoegen. Een andere variabele maakt het TextFormat-object tf .

    • Er wordt een constructorfunctie met de naam Greetings2() voor de klasse gedefinieerd. We voegen regels aan deze functie toe en voegen vervolgens in de volgende stappen andere methoden aan de klasse toe.

  10. Selecteer Bestand > Opslaan, geef het bestand de naam Greetings2.as en klik op Opslaan.

  11. Voeg de volgende regels code toe aan de functie Greetings2() .

        createUI(); 
        setUpHandlers(); 
    }

    De functie moet er nu als volgt uitzien:

    public function Greetings2() { 
        createUI(); 
        setUpHandlers(); 
    }
  12. Voeg de volgende coderegels toe na de accolade sluiten van de methode 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); 
    }

    Deze regels doen het volgende:

    • Maken een instantie van de componenten die in de toepassing worden gebruikt.

    • Stellen de grootte, positie en eigenschappen van elke component in.

    • Voeg elke component aan het werkgebied toe met de methode addChild() .

  13. Voeg na de accolade sluiten van de methode bldRadioButtons() de volgende code voor de methode setUpHandlers() toe:

    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; 
    } 
    } 
    }

    Deze functies definiëren gebeurtenislisteners voor de componenten.

  14. Selecteer Bestand > Opslaan om het bestand op te slaan.

  15. Selecteer Besturing > Film testen of druk op Ctrl+Enter om de code te compileren en de toepassing Greetings2 te testen.

Opeenvolgende voorbeelden ontwikkelen en uitvoeren

Nu u de toepassing Greetings hebt ontwikkeld en uitgevoerd, beschikt u over de basiskennis die u nodig hebt om de andere codevoorbeelden in dit boek uit te voeren. De betreffende ActionScript 3.0-code in elk voorbeeld wordt gemarkeerd en behandeld. U kunt de voorbeelden in dit boek kopiëren en plakken in een FLA-bestand en dit compileren en uitvoeren.