Sound

Cpt_Sulo

Erfahrenes Mitglied
Hey mal wieder....

Ich habe in meinem Projekt ertmal 2 Sounds. Einer ist quasi Hintergrundlalla, per Soundobjekt, wird gestreamt und funktioniert gut. Der zweite ist ein Sound, der bei rollOver über sämtliche buttons abgespielt werden soll. Beste, einfachste Methode das zu realisieren, ohne verschwendung von Performance und mit vernünftigem Zugriff auf die Lautstärke?

Es kommen da sicher noch der ein oder andere Eventsound hinzu, der natürlich auch in der Lautstärke eingestellt werden soll.

Greez Sulo
 
Hallo,

Es gibt zwei Methoden, wie du das anstellen kannst.
Bei Methode 1 verwendest du Actionscript bzw. die Soundklasse, bei Methode 2 importierst du den Sound in die Bibliothek und setzst ihn auf das entsprechende Keyframe. Performancemässig macht das soviel ich weiss, keinen grossen Unterschied, da ist es schon viel entscheidender, wieviele Sounds du gleichzeitig abspielen lässt und was sonst noch alles passiert in deinem Film. Die Dateigrösse der swf hingegen wird ordentlich nach oben korrigiert, solltest du Methode 2 verwenden. Ich empfehle dir darum, alle Event-Sounds in Sound-Objekte zu packen und die gleich auf dem ersten Keyframe des Films vorzuladen, mit dem entsprechenden Parameter "isStreaming=false", damit auch wirklich die ganzen Sounds geladen und gespeichert werden, bevor sie abgespielt werden. So kannst du die Sounds auch nachher komfortabel mit AS steuern.

Gruss
 
So...

Ich lade meinen Tastensound nun auf diese Weise:
PHP:
tasta = new Sound();
 tasta.loadSound("Dink-Public_D-146_hifi.mp3", true);
 tasta.setVolume(0);
 tasta.isStreaming = false;
 tasta.onSoundComplete = function() {
 	tasta.setVolume(30);
 };
Meinst du das in etwa so? Ich setzte den Sound erst auf Volume 0, da dieser scheinbar immer nach dem Laden abgespielt wird.....wie mach ich das also, das der Sound geladen wird, aber nicht abgespielt?
Zu bemängeln ist auch, das beim rollOver auf den Buttons, der Sound bestimmt mit ´ner halben sec. verzögerung erst abgespielt wird. Abhilfe?

Greez Sulo
 
Hi,

PHP:
tasta.loadSound("Dink-Public_D-146_hifi.mp3", false);
, dann wird der Sound nicht gestreamt, und auch nicht automatisch abgespielt.

Wenn Du nicht auf die Sounds warten willst, bette sie entweder in den Flashfilm ein (und weise sie mit attachSound zu), oder erstelle einen extra-Preloader für die Sounds. Einbetten halte ich hier für sinnvoller, da Du dann alles in "einem Abwasch" vorladen kannst. ;)

Gruß

EDIT: Sehe grade, dass lue_the_duke schon so etwas ähnliches erwähnt hat: Alle Sounds ohne Streaming im ersten Frame laden, damit sie im Cache sind.
.
 
Hey Datic

Du meinst doch in die Bibliothek importiern, unter Verknüpfung den Bezeichner zuweisen, und mit attachSound laden........Das habe ich schon mal vergeblich versucht, ich habe nichts hörbares hinbekommen......werde das aber grade nochmal testen......

Sulo
PHP:
tasta.attachSound("tasta1");
 tasta.start();
Ist das so richtig? Der Sound müsste doch einmal abgespielt werden, oder nicht?
 
Zuletzt bearbeitet:
Zurück