AS3-Tutorium: Flash: Butterfly 06 external code: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) |
||
Zeile 10: | Zeile 10: | ||
==Der Code des Schmetterlingsmovies wird ausgelagert== | ==Der Code des Schmetterlingsmovies wird ausgelagert== | ||
'''Achtung''': Die <code>scripts</code>-Ebene des Butterfly-Movies wird — im Gegensatz zur <code>scripts</code>-Ebene des Main-Movies — nicht gelöscht. | |||
Der ActionScript-Code wird allerdings deutlich vereinfacht: In einem Frame steht zum Schluss höchstens ein Methodenaufruf. | |||
* In der Bühne: Doppelklick auf das Icon vor dem Symbol <code>ButterflyMovie</code> → Die Definition des Symbols wird in der Bühne geöffnet. | * In der Bühne: Doppelklick auf das Icon vor dem Symbol <code>ButterflyMovie</code> → Die Definition des Symbols wird in der Bühne geöffnet. |
Version vom 26. Oktober 2010, 11:22 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
Achtung: Die scripts
-Ebene des Butterfly-Movies wird — im Gegensatz zur scripts
-Ebene des Main-Movies — nicht gelöscht.
Der ActionScript-Code wird allerdings deutlich vereinfacht: In einem Frame steht zum Schluss höchstens ein Methodenaufruf.
- 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
ButterflyMovie
→Eigenschaften
→Erweitert
aufklappen → Haken vorExport für ActionScript
, kein Haken vorExport in Bild 1
, Klasse:ButterflyMovie
→OK
→OK
Datei
→Neu
→ActionScript 3.0-Klasse
→OK
-> Klassenname:ButterflyMovie
Datei
→Datei speichern unter
→ButterflyMovie.as
(im selben Ordner wie die zugehörigefla
-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 2
testNumberOfRounds();
- Frame 150
decrementNumberOfRounds();
- Frame 220
stop();
Quellen
- Kowarschick, W.: Multimedia-Programmierung
- butterfly_06_external_code_2 (Flash CS5)
- butterfly_06_external_code_2 (Flash CS4)
- SVN-Repository (Flash CS5)
- SVN-Repository (Flash CS4)