Musik sanft aus-und einklingen lassen

Blizzard1975

Mitglied
Hallo,

bis jetzt habe ich immer bei Flashseiten Musik abprupt beendet bzw gestartet. Quasi über einen Button (On, Off). Mich würde brennend interessieren, wie man die Begleitmusik sanft ausklingen lässt. Bei "Off" (quasi leiser werden lassen) und bei "On" von keiner Musik langsam ansteigend lauter werdend.

Hat jemand einen Tip? :confused:

Danke im Voraus
Marco
 
Hi,

Code:
function fadeIn() {
    snd.setVolume(0);
    snd.start();
    this.onEnterFrame = function() {
        var v = snd.getVolume();
        v += (100 - v) / 8
        snd.setVolume(v);
        if (snd.getVolume() >= 99) {
            snd.setVolume(100);
            delete this.onEnterFrame;
        }
    }
}

function fadeOut() {
    this.onEnterFrame = function() {
        var v = snd.getVolume();
        v += (0 - v) / 8
        snd.setVolume(v);
        if (snd.getVolume() <= 1) {
            snd.setVolume(0);
            snd.stop();
            delete this.onEnterFrame;
        }
    }
}

Gruß
.
 
Hallöchen,

danke dir erstmal für deine Mühe! Sehr nett von dir! Leider habe ich immer noch paar Probleme und es will nicht so recht klappen.

Ich habe eine externe swf Datei, die sich Sound nennt. In der befindet sich ein Sound der eine Endlosschleife läuft. Diese externe Datei weise ich dem Hauptfilm zu.

In dem Hauptfilm befindet sich der Soundbutton, der nun die Option hat, den Sound ab-und anzuschalten (Sound soll zuerst an sein wenn man die Seite besucht!). Dazu habe ich ein Symbol (Schaltfläche) erstellt. Diese Schaltfläche wird zu einem neuen Symbol (Movieclip) woch ich 2 Ebenen habe mit jeweils 2 Schlüsselbildern.

2 Schlüsselbilder haben bei mir ein Stop zugewiesen bekommen.

Die anderen beiden Schlüsselbilder sind die von dem Button (Movieclip). Der Button hat als erstes diesen Script zugewiesen bekommen.

on (press) {
unloadMovieNum(2);
gotoAndStop(2);

function fadeIn() {
snd.setVolume(0);
snd.start();
this.onEnterFrame = function() {
var v = snd.getVolume();
v += (100 - v) / 8
snd.setVolume(v);
if (snd.getVolume() >= 99) {
snd.setVolume(100);
delete this.onEnterFrame;
}
}
}
}

Der Button auf dem zweiten Schlüsselbild hat diesen Script:

on (release) {
loadMovieNum("sound.swf", 2);
gotoAndStop(1);

function fadeOut() {
this.onEnterFrame = function() {
var v = snd.getVolume();
v += (0 - v) / 8
snd.setVolume(v);
if (snd.getVolume() <= 1) {
snd.setVolume(0);
snd.stop();
delete this.onEnterFrame;
}
}
}
}


Fazit: Der Sound startet erst bei zweimaligen Klicken und dann bei jedem Betätigen geht er ganz normal wieder an und aus ohne dabei diesen gewünschten Effekt des langsamen An-und Abschaltens zu bekommen. :(

Zu Beachten wäre auch das der Sound beim Abschalten weiterläuft. Also beim Anschalten nicht von vorn beginnt. Weißt du was ich meine? ;-)

Viele Grüße
Marco
 
Hi,

Du verwendest einen Zeitleistensound. Solche Sounds kannst Du mit AS nicht beeinflussen (im Übrigen rufst Du die Funktionen nicht einmal auf).

Mein Beispiel bezog sich auf ein Sound-Objekt (siehe FAQ und Sammelthread zum Thema Sound()).

Gruß

P.S.: Zeitleistensounds kannst Du in den Eigenschaften unter "Transformieren ..." eine Hüllkurve zuweisen.
.
 
Ok was den Begriff Zeitleistensound anbetrifft...habe ich was dazu gelernt. ;-)

Bin ich auf dem richtigen Weg wenn ich den Sound über den Befehl Sound.attachSound() abrufe und verknüpfe? Kann man diesen Befehl unter die Funktionen fadeIN und fadeOut schreiben?

Viele Grüße
Marco
 
Hi,

ja, da bist Du auf dem richtigen Dampfer. ;)

Achte darauf, dass Der Sound zum Export für AS unter dem richtigen Bezeichner freigegeben ist. Bei:
Code:
var snd = new Sound(this);
snd.attachSound("musik");
müssen, wenn Du in der Bibliothek den Sound mit rechts anklickst und "Verknüpfung..." wählst, die Häkchen bei "Export für ActionScript" und "In erstes Bild exportieren" gesetzt sein und als Verknüpfungsbezeichner mus "musik" eingegeben sein.

Dann kannst Du den Sound mit meinen Funktionen starten und stoppen:
Code:
fadeIn(); // Der Sound wird eingeblendet und gestartet

fadeOut(); // Der Sound wird ausgeblendet und gestoppt

Gruß
.
 
Hmmm schein auch nicht so der richtige Weg zu sein.

Ich habe den Sound in der Bibliothek liegen, ihn verknüpft und die Bezeichnung "testsound" gegeben.

Das Skript schaut wie folgt aus...

Sound.attachSound() {
mein_sound.attachSound("testsound")
}

Nun wird mir ausgegeben....

**Fehler** Szene=Szene 1, Ebene=Ebene 2, Bild=1:Zeile 1: Die Eigenschaft, auf die verwiesen wird, verfügt nicht über das Attribut 'Static'.
Sound.attachSound() {

Anzahl der ActionScript-Fehler: 1 Gemeldete Fehler: 1

Was für ein 'Satic' Attribut?
 
@Static:

Um die Methode attachSound auszuführen, musst Du zuerst ein Objekt vom Typ Sound erstellen (Auf Klassennamen kannst Du nur "statische" Methoden ausführen) - siehe mein vorheriges Posting:
Code:
var snd = new Sound(this); // Sound-Objekt erstellen ...
snd.attachSound("blabla"); // dem Objekt einen Sound zuweisen

Gruß
.
 
Hallo,

also soweit funktioniert das mit dem Abklingen des Soundes.
Nur weiß ich jetzt nicht mehr wie er Schleife läuft und wenn man "On" und "Off" mehrmals betätigt überlagert sich der Sound und wird übereinander abgespielt.

Ich habe mal zur Ansicht einen Anhang mit dabei.

Viele Grüße
 
Zurück