Sound unterschiedlich zuweisen?

wootimes

Grünschnabel
Ich möchte ich Hintergrund meiner Flash-Datei Vögel-Sounds mit einbringen.
Diese sollen aber, damit sich es realistisch anhört, in unteschiedlichen Abständen, Reihenfolge, bzw. zufällig abgespielt werden. Sonst wirkt es zu unecht.
Wie kann ich so etwas mit Actionsscript programmieren? Hat jemand eine Idee?

So weit bin ich schon:

Code:
function spielemusi1() {
	playsound = new Sound(this);
	playsound.attachSound("sound1");
	playsound.start();
}
function spielemusi2() {
	playsound = new Sound(this);
	playsound.attachSound("sound2");
	playsound.start();
}
function spielemusi3() {
	playsound = new Sound(this);
	playsound.attachSound("sound3");
	playsound.start();
}

spielemusi1();


spielemusi2();


spielemusi3();
 
Hi,

auf diese Weist wirst Du nur einen Sound hören - und auch nur einmal. ;) Um unterschiedliche Sounds abzuspielen, musst Du auch verschiedene Soudobjekte anlegen - willst Du die Sounds dann auch noch unterschiedlich laut oder im Panning, musst Du für jedes Soundobjekt einen eigenen Ziel-MC anlegen.

Probiers mal so:
Code:
MovieClip.prototype.addSound = function(id, vol, v_span, pan, p_span, i_span, i_base) {
    this.snd = new Sound(this);
    this.vol = vol;
    this.v_span = v_span;
    this.pan = pan;
    this.p_span = p_span;
    this.i_span = i_span;
    this.i_base = i_base;
    this.snd.attachSound(id);
    this.doPlay = function() {
        clearInterval(this.iv);
        this.snd.setVolume(this.vol + Math.random() * this.v_span - this.v_span / 2);
        this.snd.setPan(this.pan + Math.random() * this.p_span - this.p_span / 2);
        this.iv = setInterval(this, "doPlay", this.i_base + Math.random() * this.i_span - this.i_span / 2);
    }
    this.iv = setInterval(this, "doPlay", this.i_base + Math.random() * this.i_span - this.i_span / 2);
}

var sounds = new Array("sound1", "sound2", "sound3");
for (var i in sounds) {
    var str = sounds[i];
    sounds[i]  = this.createEmptyMovieClip("snd" + i, this.getNextHighestDepth());
    sounds[i].addSound(str, 50, 30, 0, 100, 2000, 1500);
}

Erklärung zu den Parametern der Funktion "addSound":

- id --> Verknüpfungsbezeichner des Sounds in der Bibliothek
- vol --> Ausgangslautstärke
- v_span --> Lautstärkevariation (bei 0 wird der Ausgangswert immer beibehalten)
- pan --> Ausgangspanorama (0 = Mittig)
- p_span --> Panoramavariation
- i_span --> Intervallspanne in Millisekunden
- i_base --> Ausgangsinterval

Gruß
.
 
Danke, für deine Hilfe!

Habe es selbst noch mal probiert:

Code:
var musi1;

function spielemusi1() {
	playsound = new Sound(this);
	playsound.attachSound("sound1");
	playsound.start();
	clearInterval (musi1); 
	var zeit1 = 0;
	
	while(zeit1<9000)
	{
		zeit1=Math.random();
		zeit1=zeit1*26000;
	}
	
	musi1=setInterval(spielemusi1, zeit1); 
}
function spielemusi2() {
	playsound = new Sound(this);
	playsound.attachSound("sound2");
	playsound.start();
	clearInterval (musi2); 
	var zeit2 = 0;
	
	while(zeit2<7000)
	{
		zeit2=Math.random();
		zeit2=zeit2*22000;
	}
	
	musi1=setInterval(spielemusi2, zeit2); 
}
function spielemusi3() {
	playsound = new Sound(this);
	playsound.attachSound("sound3");
	playsound.start();
	clearInterval (musi3); 
	var zeit3 = 0;
	
	while(zeit3<5000)
	{
		zeit3=Math.random();
		zeit3=zeit3*18000;
	}
	
	musi1=setInterval(spielemusi3, zeit3); 
}


musi1=setInterval(spielemusi1, 5000); 
musi2=setInterval(spielemusi2, 8000); 
musi3=setInterval(spielemusi3, 1000);
 
Zurück