AS3-Tutorium: Flash: Butterfly 03 fixed number of rounds: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
 
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[AS3-Tutorium:_Flash:_Butterfly|zurück zur Übersicht]]
{{AS3-Tutorium:Flash:Butterfly:Menü}}


=Schmetterling fliegt eine vorgegebene Anzahl von Runden=
=Schmetterling fliegt eine vorgegebene Anzahl von Runden=


Beispiels-Implementierung:  
Im dritten Teil des Tutoriums wird der [[AS3-Tutorium: Flash: Butterfly 02 path|endlos herumfliegende Schmetterling]] etwas gezügelt.
* [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ butterfly_03_fixed_number_of_rounds] (Flash CS5, [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ SVN-Repository])
Anstelle von unzähligen Runden fliegt er nur eine fest vorgegeben Antahl von Runden.
* [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ butterfly_03_fixed_number_of_rounds] (Flash CS4, [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ SVN-Repository])
Dies wird mit Hilfe von Actionscript bewerkstelligt.
<swf width="367" height="267">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/multi/butterfly_03_fixed_number_of_rounds_multi.swf</swf>
<noinclude>
 
<swf width="367" height="267">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/Butterfly03MultiFlash11.swf</swf>
'''[http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS5)]'''
([http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/ SVN-Repository])
 
'''[http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS4)]'''
([http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds_multi/ SVN-Repository])
</noinclude>


==ActionScript 3 (ab Flash 9) und ActionScript 2 (bis Flash 8)==  
==ActionScript 3 (ab Flash 9) und ActionScript 2 (bis Flash 8)==  
<noinclude>


# Symbol <code>ButterflyMovie</code> in der Bibliothek öffnen (Doppelklick auf Icon vor dem Symbolnamen)
<swf width="183" height="133">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/Butterfly03Flash11.swf</swf>
'''[http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS5)]'''
([http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ SVN-Repository])
 
'''[http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS4)]'''
([http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ SVN-Repository])
</noinclude>
 
# Die Datei <code>Butterfly02Flash.fla</code> unter dem Namen <code>Butterfly03Flash.fla</code> speichern und mit dieser Datei weiterarbeiten.
# Das Symbol <code>ButterflyMovie</code> in der Bibliothek öffnen (Doppelklick auf Icon vor dem Symbolnamen).
# Oberhalb der Ebene <code>butterfly</code> (und gegebenenfalls der Pfad-Ebene) zwei Ebenen anlegen:
# Oberhalb der Ebene <code>butterfly</code> (und gegebenenfalls der Pfad-Ebene) zwei Ebenen anlegen:
#* <code>scripts</code>
#* <code>scripts</code>
#* <code>labels</code>
#* <code>labels</code>
# In der Zeitleiste der Ebene <code>labels</code>: Schlüsselbild bei Frame 2 erzeugen
# In der Zeitleiste der Ebene <code>labels</code>: Ein Schlüsselbild bei Frame 2 erzeugen.
# Im Eigenschafts-Inspektor: <code>Name</code> (Bildbezeichnung, label name) → <code>lbStart</code>
# Im Eigenschafts-Inspektor: <code>Name</code> (Bildbezeichnung, label name) → <code>lbStart</code>.
# In der Zeitleiste der Ebene <code>scripts</code>: Schlüsselbild bei Frame 150 erzeugen
# In der Zeitleiste der Ebene <code>scripts</code>: Ein Schlüsselbild bei Frame 150 erzeugen.
# In der Zeitleiste der Ebene <code>scripts</code>: Schlüsselbild bei Frame 1 selektieren und Actionscript-Editor öffnen (Taste <code>F9</code>)
# In der Zeitleiste der Ebene <code>scripts</code>: Das Schlüsselbild bei Frame 1 selektieren und Actionscript-Editor öffnen (Taste <code>F9</code>).
# Code einfügen: <br/><code>var roundsToFly: int = 2;</code>
# Code einfügen: <br/><code>var roundsToFly: int = 2;</code>
# In der Zeitleiste der Ebene <code>scripts</code>: Schlüsselbild bei Frame 150 selektieren
# In der Zeitleiste der Ebene <code>scripts</code>: Das Schlüsselbild bei Frame 150 selektieren.
# Code einfügen: <br/><code>roundsToFly--;<br/>if (roundsToFly > 0)<br/>&nbsp;&nbsp;gotoAndPlay("lbStart");<br/>else<br/>&nbsp;&nbsp;stop();</code>
# Code einfügen: <br/><code>roundsToFly--;<br/>if (roundsToFly > 0)<br/>&nbsp;&nbsp;gotoAndPlay("lbStart");<br/>else<br/>&nbsp;&nbsp;stop();</code>
Im ersten Frame des MovieClips eine Variable zu zählen der Anzahl der noch zu fliegenden Runden
definert (<code>roundsToFly;</code>) und initialisiert,
auf die in jedem Frame des Filmes zugrgriffen werden kann.
Im 150. Frame wird die Anzahl der zu fliegenden Runden um ein vermindert.
Anschlißend wird überprüft, ob noch eine weitere Runde gelogen werden muss.
Falls dies der Fall ist wird zum zweiten Frame (das den Label <code>lbStart</code>
erhalten hat) zurückgesprungen, um eine neue Flugrunde zu starten. Zum ersten Label
darf nicht zurückgesprungen werden, da sonst der Rundenzähler wieder auf den Wert
<code>2</code> gesetzt werden würde.
=Probleme der Implementierung=
Die vorliegende Implementierung hat einen gravierenden Nachteil:
* Die Anzahl der zu fliegenden Runden ist fest im Code verdrahtet: <code>var roundsToFly: int = 2;</code>
Grundsätzlich sollten keine konstanten Werte direkt in den Code eingebaut werden<br/>(vgl. [[Programmierprinzipien#Programmierprinzipien|Programmierprinzipien]] → '''Konfigurierbarkeit''').


=Quellen=
=Quellen=
<noinclude>
# {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</noinclude>
# [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS5)]
# [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS4)]
# [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS4)]
# [http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS5)]


*[[Kowarschick, W.: Multimedia-Programmierung]]
== [[Subversion/HowTo|SVN]]-Repository-Verweise ==
 
* [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS5)]
[[Kategorie:Flash-HowTo]]
* [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds/ Musterlösung (Flash CS4)]
[[Kategorie:Flash-Beispiel]]
* [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS4)]
* [http://glossar.hs-augsburg.de/webdav/tutorium/flash_cs4/butterfly/butterfly_03_fixed_number_of_rounds_multi/ Erweiterte Musterlösung (Flash CS5)]<noinclude>[[Kategorie: AS3-Tutorium: Flash: Butterfly]][[Kategorie: Flash-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]]
{{{{SITENAME}}-konformer Artikel}}
{{{{SITENAME}}-konformer Artikel}}
</noinclude>

Aktuelle Version vom 14. September 2011, 13:44 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

Schmetterling fliegt eine vorgegebene Anzahl von Runden

Im dritten Teil des Tutoriums wird der endlos herumfliegende Schmetterling etwas gezügelt. Anstelle von unzähligen Runden fliegt er nur eine fest vorgegeben Antahl von Runden. Dies wird mit Hilfe von Actionscript bewerkstelligt.


<swf width="367" height="267">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds_multi/Butterfly03MultiFlash11.swf</swf> Erweiterte Musterlösung (Flash CS5) (SVN-Repository)

Erweiterte Musterlösung (Flash CS4) (SVN-Repository)


ActionScript 3 (ab Flash 9) und ActionScript 2 (bis Flash 8)

<swf width="183" height="133">http://glossar.hs-augsburg.de/beispiel/tutorium/flash_cs5/butterfly/butterfly_03_fixed_number_of_rounds/Butterfly03Flash11.swf</swf> Musterlösung (Flash CS5) (SVN-Repository)

Musterlösung (Flash CS4) (SVN-Repository)


  1. Die Datei Butterfly02Flash.fla unter dem Namen Butterfly03Flash.fla speichern und mit dieser Datei weiterarbeiten.
  2. Das Symbol ButterflyMovie in der Bibliothek öffnen (Doppelklick auf Icon vor dem Symbolnamen).
  3. Oberhalb der Ebene butterfly (und gegebenenfalls der Pfad-Ebene) zwei Ebenen anlegen:
    • scripts
    • labels
  4. In der Zeitleiste der Ebene labels: Ein Schlüsselbild bei Frame 2 erzeugen.
  5. Im Eigenschafts-Inspektor: Name (Bildbezeichnung, label name) → lbStart.
  6. In der Zeitleiste der Ebene scripts: Ein Schlüsselbild bei Frame 150 erzeugen.
  7. In der Zeitleiste der Ebene scripts: Das Schlüsselbild bei Frame 1 selektieren und Actionscript-Editor öffnen (Taste F9).
  8. Code einfügen:
    var roundsToFly: int = 2;
  9. In der Zeitleiste der Ebene scripts: Das Schlüsselbild bei Frame 150 selektieren.
  10. Code einfügen:
    roundsToFly--;
    if (roundsToFly > 0)
      gotoAndPlay("lbStart");
    else
      stop();

Im ersten Frame des MovieClips eine Variable zu zählen der Anzahl der noch zu fliegenden Runden definert (roundsToFly;) und initialisiert, auf die in jedem Frame des Filmes zugrgriffen werden kann.

Im 150. Frame wird die Anzahl der zu fliegenden Runden um ein vermindert. Anschlißend wird überprüft, ob noch eine weitere Runde gelogen werden muss. Falls dies der Fall ist wird zum zweiten Frame (das den Label lbStart erhalten hat) zurückgesprungen, um eine neue Flugrunde zu starten. Zum ersten Label darf nicht zurückgesprungen werden, da sonst der Rundenzähler wieder auf den Wert 2 gesetzt werden würde.

Probleme der Implementierung

Die vorliegende Implementierung hat einen gravierenden Nachteil:

  • Die Anzahl der zu fliegenden Runden ist fest im Code verdrahtet: var roundsToFly: int = 2;

Grundsätzlich sollten keine konstanten Werte direkt in den Code eingebaut werden
(vgl. ProgrammierprinzipienKonfigurierbarkeit).

Quellen

  1. Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)
  2. Musterlösung (Flash CS5)
  3. Musterlösung (Flash CS4)
  4. Erweiterte Musterlösung (Flash CS4)
  5. Erweiterte Musterlösung (Flash CS5)

SVN-Repository-Verweise


Dieser Artikel ist GlossarWiki-konform.