Macromedia Flash 8 Advanced for Windows and Macintosh:
Visual QuickPro Guide
Russell Chun und H. Paul Robertson
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.
Russell Chun und H. Paul Robertson
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.
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.
Abb. 1: Die vollständige Anweisung im Fenster „Skript“ erstellt das Sound-Objekt „mySound_sound“.
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.
Abb 2: Wählen Sie für jeden anzufügenden Sound in der Bibliothek die Option „Verknüpfung“.
Abb. 3: Dieser Sound trägt den Namen „guitarsLoopID“ und wird in die exportierte SWF-Datei integriert.
Abb. 4: Mit der attachSound()-Methode wird ein Sound aus der Bibliothek („guitarsLoopID“) an das Sound-Objekt (mySound_sound) angefügt.
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.
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.
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.
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.
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.
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.
Abb. 8: Ausschnitt aus dem Fenster „Skript“, der die onRelease-Ereignisprozeduren für die Schaltflächen „rightSpeaker_btn“, „leftSpeaker_btn“ und „bothSpeakers_btn“ zeigt.