AS3-Tutorium: Flash: Butterfly 06 external code: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
(kein Unterschied)

Version vom 25. Oktober 2010, 19:04 Uhr

Dieser Artikel ist veraltet und wird künftig evtl. entfernt.

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 4
(großteils überprüft)
Umfang: 3
(einige wichtige Fakten fehlen)
Quellenangaben: 5
(vollständig vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 4
(sehr gut)

AS3-Tutorium: Butterfly: Flash | Flex

Flash: Übersicht | Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5 | Teil 6 | Teil 7a | Teil 7b | Teil 7c | Teil 8 | Teil 9 | Teil 10

Verbesserung der vierten Version des Schmetterling-Movies

In AS3-Tutorium: Flash: Butterfly 05 external code wurde der Code aus der Hauptzeitleiste in eine Klasse ausgelagert. Nun soll auch noch der Code vom Schmetterlings-Movie so weit wie möglich ausgelagert werden (ohne das Verhalten des Filmes zu ändern.)

<swf width="367" height="267">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_06_external_code_2/butterfly_06_external_code_2.swf</swf> Musterlösung: butterfly_06_external_code_2.swf

Der Code des Schmetterlingsmovies wird ausgelagert

  • In der Bühne: Doppelklick auf das Icon vor dem Symbol ButterflyMovie → Die Definition des Symbols wird in der Bühne geöffnet.
  • In der Bühne: Rechtsklick Icon vor dem Symbol ButterflyMovieEigenschaftenErweitert aufklappen → Haken vor Export für ActionScript, kein Haken vor Export in Bild 1, Klasse: ButterflyMovieOKOK
  • DateiNeuActionScript 3.0-KlasseOK -> Klassenname: ButterflyMovie
  • DateiDatei speichern unterButterflyMovie.as (im selben Ordner wie die zugehörige fla-Datei.)

In die Datei ButterflyMovie.as wird folgender Code eingefügt:

package
{
  import flash.display.MovieClip;

  public class ButterflyMovie extends MovieClip
  {
    /////////////////////////////////////////////////////////////////////////////
    // Attributes
    /////////////////////////////////////////////////////////////////////////////
    
    public var roundsToFly: int = 0;

    /////////////////////////////////////////////////////////////////////////////
    // Constructor
    /////////////////////////////////////////////////////////////////////////////
    
    public function ButterflyMovie()
    {
      stop();
    }
    
    /////////////////////////////////////////////////////////////////////////////
    // Methods called from within the timeline
    /////////////////////////////////////////////////////////////////////////////

    public function testNumberOfRounds(): void
    {
      if (roundsToFly == 0)
        gotoAndPlay("lbEnd");
    }

    public function decrementNumberOfRounds(): void
    {
      roundsToFly--;
//    if (roundsToFly > 0)
      gotoAndPlay("lbStart");
    }
		
    /////////////////////////////////////////////////////////////////////////////
    // End of class
    /////////////////////////////////////////////////////////////////////////////
  }
}

Die öffentlich zugängliche Zustandasvariable roundsToFly wurde in die Klasse verlagert. Außerdem wurden zwei Methoden definiert, die den Test-Code aus der Zeitleiste des Butterfly-Movies enthalten (wobei die zweite If-Bedingung überflüssig ist und daher auskommentiert wurde).

Der stop-Befehle aus dem ersten Frame wurde in den Konstruktor ausgelagert.

Damit kann der Code in der Zeitleiste auf drei simple Methodenaufrufe reduziert werden:

Frame 1
kein Code mehr
Frame 1
testNumberOfRounds();
Frame 150
decrementNumberOfRounds();
Frame 220
stop();

Quellen


Dieser Artikel ist GlossarWiki-konform.