Eingabehilfen

Lehrgänge

Buch-Info

Macromedia Flash 8 Advanced for Windows and Macintosh:
Visual QuickPro Guide

Russell Chun und H. Paul Robertson

www.peachpit.com

Buchumschlag

Ressourcen

Auszug aus Macromedia Flash 8 Advanced for Windows and Macintosh: Visual QuickPro Guide
von Russell Chun und H. Paul Robertson
© 2006. Mit Genehmigung von Peachpit. Dieses Buch können Sie unter www.peachpit.com erwerben.

Email to a friendEmail to a friend

Erweitern von Flash-Filmen mit Sound

Durch die Verwendung von Sound in Adobe® Flash®-Filmen können Animationen und die Interaktivität der Filme verbessert werden und so selbst einfachste Projekte durch Einbeziehung mehrerer Sinne des Benutzers interessanter gestaltet werden. Filme können mit Hintergrundmusik versehen werden, um die passende Stimmung zu erzeugen. Die Handlung eines Films kann durch einen Begleitkommentar unterstützt und Benutzerinteraktionen, wie z. B. das Klicken auf Schaltflächen oder Drag & Drop, können akustisch untermalt werden. Flash unterstützt den Import mehrerer Audioformate, wie z. B. WAV, AIF und MP3, wodurch dem Benutzer ein breites Spektrum von Sounds zur Verfügung steht. Flash verfügt außerdem über zahlreiche Optionen für den Soundexport, von Audiokomprimierung in Sprachqualität bis hin zu hochwertiger MP3-Komprimierung, um die Dateigröße der Flash-Dateien auf ein Minimum zu beschränken.

In diesem Lehrgang wird die Sound-Klasse behandelt. Mit dieser Flash-Klasse lassen sich Soundelemente per ActionScript steuern. Sie sollten mit den Grundlagen der Soundverarbeitung in Flash bereits vertraut sein, wie z. B. mit dem Importieren von Sounds und Zuweisen zu Schlüsselbildern mithilfe der Optionen „Event Sync“, „Start Sync“, „End Sync“ und „Stream Sync“. Wenn Sie sich nicht sicher sind, ob Sie diese Techniken beherrschen, finden Sie zusätzliche Informationen in den Lehrgängen und Hilfedateien, die zum Lieferumfang von Flash gehören. In diesem Lehrgang erfahren Sie, wie Sie die Sound-Klasse zum dynamischen Wiedergeben von Audioinhalten aus der Bibliothek verwenden, ohne sie Schlüsselrahmen zuordnen zu müssen.

Die Methoden, Eigenschaften und Ereignissen der Sound-Klasse bieten Ihnen die nötige Flexibilität und Leistungsfähigkeit, um Sounds auf kreative Weise in Filme zu integrieren. Sie können z. B. Schieberegler erstellen, mit denen die Betrachter Ihrer Filme die Lautstärke ändern können, oder Automatenspiele passend zum Spielverlauf mit Sounds untermalen.

Verwenden der Sound-Klasse

Eine einfache Möglichkeit, Sounds in einen Film zu integrieren, besteht darin, eine Sounddatei einem Schlüsselbild auf der Zeitleiste zuzuweisen. Zum Integrieren von Sound in die Zeitleiste werden häufig die beiden folgenden Optionen verwendet: „Event Sync“ zur Wiedergabe eines Klickgeräuschs im Down-Zustand eines Schaltflächensymbols und „Stream Sync“ zum Synchronisieren eines Dialogs mit einer Animation. Doch wenn Sie die Soundausgabe zur Laufzeit steuern, die Lautstärke und Wiedergabe über den linken und rechten Lautsprecher dynamisch anpassen oder Informationen zur verstrichenen Spieldauer in Sekunden abrufen möchten, müssen Sie die Sound-Klasse verwenden.

Mit den Methoden der Sound-Klasse können Sie das Sound-Wiedergabeverhalten und mit den Eigenschaften der Sound-Klasse das Timing der Wiedergabe und das Abrufen von MP3-Dateiinformationen steuern. Sie müssen die Sound-Klasse mithilfe einer Konstruktorfunktion instantiieren und sie einer Variablen zuweisen. Sobald ein Sound-Objekt benannt ist, können Sie es zum Wiedergeben und Ändern von Sounddateien verwenden, die Sie ihm zuordnen.

So erstellen Sie ein globales Sound-Objekt:

  1. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  2. Geben Sie „var“ und anschließend einen Namen für das neue Sound-Objekt ein, gefolgt von „:Sound“ (zur Angabe des Datentyps). Geben Sie am Ende der Zeile ein Gleichheitszeichen ein.
  3. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „new Sound“ (Abb. 1). Die neue Sound()-Konstruktorfunktion wird im Fenster „Skript“ angezeigt. Der Konstruktor kann optional ein MovieClip-Objekt als Parameter verwenden. In diesem Fall steuert das Sound-Objekt die Sounds in dem betreffenden Movieclip. Ohne Angabe eines Movieclips wird ein Sound-Objekt erstellt, das alle Sounds im Flash-Dokument steuert.
Die vollständige Anweisung

Abb. 1: Die vollständige Anweisung im Fenster „Skript“ erstellt das Sound-Objekt „mySound_sound“.

Anfügen von Sounds

Nachdem Sie das neue Sound-Objekt instantiiert haben, müssen Sie es mit einem Sound verknüpfen. Sie können dazu eine externe MP3-Datei in das Sound-Objekt laden oder einen Sound aus der Bibliothek anfügen. Wenn sich mehrere importierte Sounds in der Bibliothek befinden, müssen Sie dem Sound-Objekt mitteilen, welcher davon wiedergegeben und gesteuert werden soll.

Zum Auswählen eines Sounds aus der Bibliothek wird die Option „Verknüpfung“ verwendet. Mit der Option „Verknüpfung“ wird nicht nur der Sound ausgewählt, sondern auch die entsprechende Sounddatei in die SWF-Datei eingebettet, sodass der Sound beim Aufrufen des Sound-Objekts verfügbar ist. Nachdem ein importierter Sound mit einem Verknüpfungsbezeichner versehen wurde, wird er mithilfe der attachSound()-Methode einem Sound-Objekt angefügt.

So fügen Sie einen Sound aus der Bibliothek an ein Sound-Objekt an:

  1. (Verwenden Sie weiterhin die Datei, die Sie im vorherigen Schritt erstellt haben.) Importieren Sie eine Sounddatei, indem Sie „Datei“ > „Importieren“ > „In Bibliothek importieren“ wählen und anschließend eine Audiodatei auswählen. Die ausgewählte Audiodatei wird in der Bibliothek angezeigt. Sie können Dateien der folgenden Soundformate importieren: AIF (Mac), WAV (Windows) und MP3 (Mac und Windows). Weitere Formate stehen zur Verfügung, wenn Sie QuickTime installiert haben.
  2. Wählen Sie in der Bibliothek ein Soundsymbol aus.
  3. Wählen Sie im Optionsmenü die Option „Verknüpfung“ (Abb. 2). Das Dialogfeld „Verknüpfungseigenschaften“ wird angezeigt.
Auswählen der Option „Verknüpfung“

Abb 2: Wählen Sie für jeden anzufügenden Sound in der Bibliothek die Option „Verknüpfung“.

  1. Aktivieren Sie im Bereich „Verknüpfung“ das Kontrollkästchen „Export für ActionScript“. Lassen Sie das Kontrollkästchen „In erstes Bild exportieren“ aktiviert.
  2. Geben Sie in das Feld „Bezeichner“ einen Namen für den Sound ein (Abb. 3).
Sound „guitarsLoopID“

Abb. 3: Dieser Sound trägt den Namen „guitarsLoopID“ und wird in die exportierte SWF-Datei integriert.

  1. Klicken Sie auf „OK“. Flash exportiert den ausgewählten Sound unter Verwendung des eindeutigen Bezeichners in die SWF-Datei, sodass der Sound zum Anfügen an ein Sound-Objekt zur Verfügung steht.
  2. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  3. Geben Sie in die nächste Zeile nach der Zeile mit der neuen Sound-Konstruktorfunktion den Namen des Sound-Objekts gefolgt von einem Punkt ein.
  4. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „Methoden“ > „attachSound“. Alternativ können Sie im Dropdown-Menü für Codehinweise den Eintrag „attachSound“ wählen.
  5. Platzieren Sie den Cursor zwischen den Klammern und geben Sie den Verknüpfungsbezeichner des Sounds aus der Bibliothek in Anführungszeichen ein (Abb. 4). Der Sound aus der Bibliothek ist nun an das Sound-Objekt angefügt. Der Verknüpfungsbezeichner muss unbedingt in Anführungszeichen angegeben werden. Dadurch wird Flash signalisiert, dass das betreffende Wort der tatsächliche Name des Bezeichners ist und kein Ausdruck, der ausgewertet werden muss, um den Namen des Bezeichners zu bestimmen.
Die attachSound()-Methode

Abb. 4: Mit der attachSound()-Methode wird ein Sound aus der Bibliothek („guitarsLoopID“) an das Sound-Objekt (mySound_sound) angefügt.

Wiedergeben von Sounds

Nachdem Sie ein neues Sound-Objekt erstellt und ihm einen Sound aus der Bibliothek angefügt haben, können Sie den Sound wiedergeben. Verwenden Sie zur Wiedergabe des Sounds aus dem Sound-Objekt die start()-Methode. Die start()-Methode verwendet zwei Parameter: „secondsOffset“ und „loops“.

Der Wert für den secondsOffset-Parameter ist eine Zahl, die angibt, ab welcher Stelle im Sound (gemessen in Sekunden) die Wiedergabe beginnen soll. Sie können festlegen, dass die Wiedergabe des Sounds von Anfang an oder ab einer späteren Stelle erfolgen soll. Wenn Sie z. B. einen 20-sekündigen Sound an ein Sound-Objekt angefügt und für „secondsOffset“ den Wert „10“ festgelegt haben, beginnt die Wiedergabe in der Mitte des Sounds. Die Wiedergabe wird nicht um 10 Sekunden verzögert, sondern beginnt sofort an der 10-Sekunden-Markierung.

Der Wert für den loops-Parameter ist eine Zahl, die angibt, wie oft die Wiedergabe des Sounds erfolgen soll. Bei einer loops-Einstellung von 2 wird der gesamte Sound zweimal hintereinander ohne Unterbrechung wiedergegeben. Wenn kein Parameter für die start()-Methode definiert ist, gibt Flash den Sound einmal wieder und beginnt mit der Wiedergabe am Anfang des Sounds.

So geben Sie einen Sound wieder:

  1. (Verwenden Sie weiterhin die Datei aus dem vorherigen Schritt.) Erstellen Sie ein Schaltflächensymbol, platzieren Sie eine Instanz dieses Symbols auf der Bühne und geben Sie der Instanz im Eigenschafteninspektor einen Namen. Im Folgenden werden dieser Schaltfläche Aktionen zugewiesen, um die Wiedergabe des Sounds zu starten.
  2. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  3. Weisen Sie am Ende des aktuellen Skripts der Schaltfläche eine onRelease-Ereignisprozedur zu.
  4. Geben Sie innerhalb der Ereignisprozedur-Funktion den Namen des Sound-Objekts gefolgt von einem Punkt ein.
  5. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „Methoden“ > „start“.
  6. Platzieren Sie den Cursor zwischen den Klammern und geben Sie „0“, dann ein Komma und dann „5“ ein (Abb. 5). Dadurch werden der secondsOffset-Parameter auf „0“ und der Loops-Parameter auf „5“ festgelegt.
Das Fenster „Skript“

Abb. 5: Ausschnitt aus dem Fenster „Skript“, der die onRelease-Ereignisprozedur für die Schaltfläche „startButton_btn“ zeigt. Dieser Aufruf der start()-Methode gibt den Sound, der an das mySound_sound-Objekt angefügt ist, fünfmal nacheinander wieder.

  1. Testen Sie den Film. Wenn der Betrachter auf die Schaltfläche klickt, wird der Sound fünfmal nacheinander wiedergeben. Die Wiedergabe beginnt dabei am Anfang des Sounds.

Tipps

  • Leider ist es nicht möglich, die start()-Methode anzuweisen, die Wiedergabe des Sounds unendlich fortzusetzen. Sie können jedoch ersatzweise den loops-Parameter auf einen extrem hohen Wert festlegen, z. B. 99999.
  • Bei jedem Aufruf der start()-Methode wird der angefügte Sound wiedergegeben, selbst wenn die Wiedergabe bereits läuft. Auf diese Weise können sich mehrere überlappende Soundwiedergaben ergeben. Wenn der Betrachter beispielsweise mehrmals auf die im vorherigen Schritt erstellte Schaltfläche klickt, überlagern sich die Sounds. Um Überlappungen dieser Art zu vermeiden, müssen Sie direkt vor der start()-Methode eine stop()-Methode (wird im nächsten Schritt vorgestellt) einfügen. Auf diese Weise wird sichergestellt, dass ein Sound immer beendet wird, bevor er erneut wiedergegeben wird.
  • Die start()-Methode gibt stets den aktuellen Sound wieder, der an das Sound-Objekt angefügt ist. Dies bedeutet, dass Sie dem gleichen Sound-Objekt mehrere Sounds aus der Bibliothek anfügen können. Die start()-Methode gibt dann den jeweils aktuellen Sound wieder. Sie können beispielsweise drei Schaltflächen erstellen und das folgende Skript zuweisen:
var:my_sound:Sound = new Sound();
firstButton_btn.onRelease = function() {
my_sound.attachSound
(“Hawaiian”);
};
secondButton_btn.onRelease = function() {
my_sound.attachSound (“Jazz”);
};
startButton_btn.onRelease = function() {
my_sound.start(0, 1);
};

Wenn Sie auf die Schaltfläche „firstButton_btn“ und dann auf die Schaltfläche „startButton_btn“ klicken, hören Sie den Sound „Hawaiian“. Wenn Sie auf die Schaltfläche „secondButton_btn“ und dann auf die Schaltfläche „startButton_btn“ klicken, hören Sie den Sound „Jazz“. Wenn Sie mit der Wiedergabe des Sounds „Jazz“ beginnen, bevor die Wiedergabe des Sounds „Hawaiian“ beendet ist, hören Sie überlappende Sounds.

So stoppen Sie einen Sound:

  1. (Verwenden Sie weiterhin die Datei aus dem vorherigen Schritt.) Platzieren Sie eine weitere Instanz dieses Schaltflächensymbols auf der Bühne und geben Sie der Instanz im Eigenschafteninspektor einen Namen.
  2. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  3. Weisen Sie der neuen Schaltflächeninstanz eine onRelease-Ereignisprozedur zu.
  4. Geben Sie den Namen des Sound-Objekts gefolgt von einem Punkt ein.
  5. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „Methoden“ > „stop“.
    (Abb. 6).
stopButton_btn.

Abb. 6: Ausschnitt aus dem Fenster „Skript“, der die onRelease-Ereignisprozedur für die Schaltfläche „stopButton_btn“ zeigt. Dieser Aufruf der Stop-Methode stoppt die Wiedergabe des Sounds, der an das mySound_sound-Objekt angefügt ist. Die stop-Methode verfügt über keine Parameter.

  1. Testen Sie den Film. Wenn der Betrachter auf diese Schaltfläche klickt, wird die Wiedergabe des an das Sound-Objekt angefügten Sounds gestoppt.

So stoppen Sie alle Sounds:

  • Wählen Sie „Globale Funktionen“ > „Zeitleistensteuerung“ > „stopAllSounds“ (Esc + ss). Wenn diese Aktion ausgeführt wird, stoppt Flash die Wiedergabe aller Sounds, unabhängig davon, ob sie einem Sound-Objekt angefügt sind oder über die Zeitleiste wiedergegeben werden.

Ändern von Sounds

Durch die Verwendung der Sound-Klasse haben Sie in Flash die vollständige Kontrolle über die Lautstärke und die Ausgabe über den linken oder rechten Lautsprecher, die so genannte Balancesteuerung. Diese Soundsteuerungsmöglichkeiten erlauben Ihnen, die Benutzer die Lautstärke selbst wählen zu lassen sowie realistischere Umgebungen zu erstellen. Bei einem Autorennspiel können Sie z. B. die Lautstärke der Geräusche von herannahenden und vorbeifahrenden Autos variieren. Mit der Balancesteuerung lässt sich das klassische Spiel „Pong“ ausschmücken, indem die Geräusche des auf Kelle und Wand treffenden Balls immer aus der passenden Richtung wiedergegeben werden.

Zum Ändern von Sounds dienen die zwei Methoden „setVolume()“ und „setPan()“. Die setVolume()-Methode verwendet eine Zahl zwischen 0 und 100 als Parameter, die die Lautstärke in Prozent angibt, wobei 100 für volle Lautstärke und 0 für Kein Ton steht. Die setPan()-Methode verwendet eine Zahl zwischen -100 und 100 als Parameter. Bei einem Wert von -100 wird der Sound vollständig über den linken Lautsprecher, bei 100 vollständig über den rechten Lautsprecher wiedergegeben. Bei 0 erfolgt die Wiedergabe des Sounds über beide Lautsprecher gleichermaßen.

So legen Sie die Lautstärke eines Sounds fest:

  1. (Verwenden Sie weiterhin die Datei aus dem vorherigen Schritt.) Platzieren Sie eine weitere Instanz dieses Schaltflächensymbols auf der Bühne und geben Sie der Instanz im Eigenschafteninspektor einen Namen.
  2. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  3. Weisen Sie am Ende des aktuellen Skripts der neuen Schaltfläche eine onRelease-Ereignisprozedur zu.
  4. Geben Sie innerhalb der Ereignisprozedur-Funktion den Namen des Sound-Objekts gefolgt von einem Punkt ein.
  5. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „Methoden“ > „setVolume“.
  6. Platzieren Sie den Cursor zwischen den Klammern und geben Sie eine Zahl zwischen 0 und 100 ein (Abb. 7).
volUp_btn.

Abb. 7: Ausschnitt aus dem Fenster „Skript“, der die onRelease-Ereignisprozedur für die Schaltfläche „volUp_btn“ zeigt. Durch diesen Aufruf der setVolume()-Methode wird die Lautstärke für das Sound-Objekt „mySound_sound“ auf 100 % zurückgesetzt. Im dargestellten Ausschnitt aus dem Fenster „Skript“ ist außerdem eine onRelease-Ereignisprozedur für eine Schaltfläche namens „volDown_btn“ aufgeführt. Durch diesen Aufruf der setVolume()-Methode wird die Lautstärke für das Sound-Objekt „mySound_sound“ auf 20 % verringert.

  1. Testen Sie den Film. Geben Sie zuerst den Sound wieder. Wenn Sie auf die neue Schaltfläche klicken, ändert sich die Lautstärke entsprechend der Parametereinstellung.

So legen Sie die Balance für einen Sound fest:

  1. (Verwenden Sie weiterhin die Datei aus dem vorherigen Schritt.) Platzieren Sie eine weitere Instanz dieses Schaltflächensymbols auf der Bühne und geben Sie der Instanz im Eigenschafteninspektor einen Namen.
  2. Wählen Sie in der Hauptzeitleiste das erste Schlüsselbild aus und öffnen Sie das Fenster „Aktionen“.
  3. Weisen Sie am Ende des aktuellen Skripts der neuen Schaltfläche eine onRelease-Ereignisprozedur zu.
  4. Geben Sie zwischen den geschweiften Klammern der Ereignisprozedur den Namen des Sound-Objekts gefolgt von einem Punkt ein.
  5. Wählen Sie „ActionScript 2.0-Klassen“ > „Medien“ > „Sound“ > „Methoden“ > „setPan“.
  6. Platzieren Sie den Cursor zwischen den Klammern und geben Sie eine Zahl zwischen -100 und 100 ein (Abb. 8). Diese einzelne Zahl steuert die Balance zwischen linkem und rechtem Lautsprecher.
onRelease-Ereignisprozeduren

Abb. 8: Ausschnitt aus dem Fenster „Skript“, der die onRelease-Ereignisprozeduren für die Schaltflächen „rightSpeaker_btn“, „leftSpeaker_btn“ und „bothSpeakers_btn“ zeigt.

  1. Testen Sie den Film. Geben Sie zuerst den Sound wieder. Wenn Sie auf die Schaltfläche klicken, ändert sich die Links-Rechts-Balance entsprechend der Parametereinstellung.