Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Sound Loop - Hilfe?!?“

R

Routine

Guest

Hallo,

ich weiss, dass man Sounds einfach loopen kann, aber wie schaff ich es, dass Sound1 > Sound2 und wieder zurück zu Sound 1..... geht?
Also das beide Sounds in einer Schleife abgespielt werden?

Meine bisherigen Versuche und Suchen sind leider ohne Erfolg. Entweder hängt es, oder es wiederholt sich und dann ist Schluss...

Wär über einen funktionsfähigen Code echt erfreut, weil ich da jetzt schon ne Weilöe dran häng und keine Lösung finde.
Mein bisheriger Code lautet:
Code:
wiederholung = 0;

track1 = new Sound(_root.a1);
track1.attachSound("mySound1");
track1.start(0,1);

track1.onSoundComplete = function(){
        _root.a1.wiederholung ++;
if(_root.a1.wiederholung == 4){
                wiederholung = 0;
track2 = new Sound(_root.a2);
track2.attachSound("mySound2");
track2.start(0,1);
}
else{track1.start(0,1);
        }
};
Dabei ist jeder Sound in einem MC (a1/a2...) und ist gekennzeichnet (Sound1/Sound2...)
 

2ter_Heiko

Nicht mehr ganz neu hier

Setze die Sounds dann soch in ein Spirit oder wie das heißt. Also in eine eigenständige undterebene in dein Hauptfilm, der sich immer wiederholt.
Ich hoffe ich wurde verstanden und dass ich verstanden habe was du willst.

Heiko
 
R

Routine

Guest

Spirit???
Es geht hier um Flash... da nix Spirit. Du meinst wahrscheinlich eine Instanz... da liegen sie aber schon drin.

Wär schön, wenn sich jemand mit Flash auskennt und mir sagen kann, wie ich am besten einen Soundloop mit 2 Sounds erzeugen kann, in denen man auch die Wiederholrate eingeben kann.

EINEN Sound zu loopen ist ja wie gesagt, kein Thema, aber 2 schon eher scheinbar...

onSoundComplete wäre wohl Vorraussetzung, da es ja ein synchroner Loop sein soll, der ohne Zeitangabe auskommen soll.

Vielleicht kann jemand mein Script anpassen, oder mir nen anderen Vorschlag machen (aber bitte nicht komplizierter)

Funtkionsweise sollte des Soundloops sollte sein:
1,2,1,2,1,2,1,2 ....
 

scherbi

Nicht mehr ganz neu hier

Hi

wenn die Beiden Sounds immer abwechselnd gespielt werden sollen, warum verbindest du sie nicht mit einem Soundeditor?

mfg
Scherbi
 

2ter_Heiko

Nicht mehr ganz neu hier

Ich habe schon mitbekommen dass es um Flash geht ;-)

Ich habe jedoch nur SwishMax, und da heißt sonne sich unabhängig vom hauptfilm wiederholende funktion "Sprite" in die man alles reinpacken kann. In irgendeiner Form ist das auch mit dem FlashProgramm von Macromedia möglich. Und wenn du es nach so einem Muster haben willst, wieso nimmst du kein Audioprogramm, packst die loops zusammen und speicherst sie als einzige Datei ab?

Edit: scherbi war schneller
 
T

torquemaster

Guest

Versuche es mal mit Fruity Loops damit setzt du deine Sounds in Loops bzw Endless oder einfacher benutze E-Jay Music Cleanic damit kann man auch endless Loops erstellen ist sogar einfacher als Fruity.
Wenn das weiter helfen sollte!!!
Gruß Maik
 

h_seldon

Aktives Mitglied

Hallo,

so auf die Schnelle würde mir eine rekursive Funktion, also eine Funktion, die sich selbst wieder aufruft, einfallen.

track1 = new Sound();
track1.attachSound("mySound1");
track2 = new Sound();
track2.attachSound("mySound2");
function abspielen(wer) {
wer.start();
wer.onSoundComplete = function() {
if (this == track1) {
abspielen(track2);
} else {
abspielen(track1);
}
};
}
abspielen(track1);

Zuerst richtest Du zwei Soundobjekte ein (wie bisher in Deinem Code auch). Dann definierst Du eine Funktion abspielen, die als Parameter das Soundobjekt erhält, das aufgerufen werden soll.
Die Funktion startet den Sound und weist ihm das Ereignis onSoundComplete zu. Sobald der Sound zu Ende ist, wird nachgeschaut, wer gerade abspielte. Wenn das track1 war, wird dieselbe Funktion mit track2 als Parameter aufgerufen. War dagegen track2 aktiv, dann wird die Funktion mit track1 aufgerufen - also eine Art Sound-JOJO.

Das ist unsauber geskriptet, weil es nur auf zwei Sounds zugeschnitten ist, aber für die konkrete Fragestellung müßte es ausreichend sein.

happy coding
 

h_seldon

Aktives Mitglied

Hallo,

ups, Nachtrag: die Sounds müssen nicht in einem MC liegen. Es reicht, wenn Sie in der Bibliothek vorhanden sind und den Verknüpfungsnamen "mySound1" bzw. "mySound2" besitzen.

happy coding
 
R

Routine

Guest

hallo,
erstmal danke für eure antworten... leider lagen die meisten mit ihren antworten, weit neben meiner frage! wenn ich Sounds loopen möchte, dann möchte ich sie bestimmt NICHT WIEDER ZUSAMMENFÜGEN! Nettgemeinte Ratschläge, die mit Flash nix zu tun haben bringen mich auch nicht weiter... h_seldon hat es schon ganz gut erfasst, danke. hab es mittlerweile soweit ganz gut hinbekommen, bis auf die Start bzw. Stop Function. Ist etwas schwierig mit dem Handling.
Weiss jemand Rat:


weiss jemand, wie ich folgendes Problem lösen kann?
ich habe mehrere Sounds, die ich in einer Schleife abspiele (der Einfachheit halber gehe ich hier jetzt immer von nur 2 Sounds aus) diese lade ich wie üblich:
Code:

wiederholung = 0; track1 = new Sound(); track1.attachSound("mySound1"); track2 = new Sound(); track2.attachSound("mySound2");


und die function:
Code:

function tracka(){track1.start(0,1);playing=true;track1.onS oundComplete = function(){wiederholung ++; if(wiederholung == 1){wiederholung = 0; trackb();} else{track1.start(0,1);}}};


der zweite sound erhält die function trackb()
nun rufe ich, um die sounds zu starten, über einen Play Button
Code:

(on Release {tracka();}

auf.
Funktioniert auch bestens, aber nun möchte ich diese Sounds stoppen und DA ist das Problem!
Wenn ich als Befehl z.B.
Code:

on (Release) {track1.stop();.....}

aufrufe, dann stoppen zwar die Sounds, aber ich kann es nicht wieder normal über den Play Button starten, denn dann wird nur noch der erste Sound abgespielt...
Kann ich eine Function stoppen? Mir wäre es lieber, wenn ich die function tracka() usw. stoppen könnte, geht das?
 

h_seldon

Aktives Mitglied

Wenn Du mehr als zwei Sounds abspielen möchtest, dann ist es besser, sie in einem Array zu verwalten und sie einem einzigen Soundobjekt zuzuweisen als pro Sound ein eigenes Soundobjekt einzurichten. Der Code sieht folgendermaßen aus (hier beispielhaft für 2 Sounds):

aSounds = ["mySound1","mySound2"];
index = 0;
sounds = new Sound();
function musik(){
sounds.attachSound(aSounds[index]);
sounds.start();
}
sound.onSoundComplete = function(){
if(index < aSounds.length-1){
index++;
}else{
index = 0;
}
musik();
}
b_stop.onPress = function(){
sounds.stop();
}
b_play.onPress = function(){
sounds.start();
}
musik();

aSounds enthält die Verknüpfungsnamen aller Sounds.
index definiert die Position der Verknüpfungsnamen innerhalb des Arrays, so daß wir darauf zugreifen können.
sounds ist eine neues Soundobjekt, dem nacheinander alle Sounds des Arrays zugewiesen werden.
function musik() erledigt die Soundzuweisung und startet den Sound.
sound.onSoundComplete fragt nach, ob noch nicht der letzte Sound abgespielt wurde. Das kann man herausfinden, indem man einfach nach dem Inhalt von index fragt. Wenn index kleiner ist als die Gesamtlänge des Arrays - 1, dann ist noch nicht der letzte Sound erreicht, und index kann um 1 hochgezählt werden. Andernfalls wird index einfach auf den ersten gültigen Wert, also die 0, zurück gesetzt. Anschließend ruft man die Funktion musik auf, die über index herausfindet, welcher Sound aktuell abgespielt werden soll.
Die beiden Buttons stop und play sorgen jeweils dafür, daß der Sound stoppt bzw. wieder abspielt.

Übrigens: Eine Funktion kann man nicht einfach stoppen. Sie kann entweder gelöscht und bei Bedarf wieder neu zugewiesen werden. Oder man steuert ihre Ausführung mit Hilfe einer Variablen, die 2 Werte annehmen kann (true oder false, in diesem Fall spricht man auch von einer Flag). Wenn die Variable true ist, wird die Funktion aufgerufen, andernfalls nicht.

Sorry für die sehr späte Anwtort, aber ich blieb einige Tage www-abstinent und habe erst kürzlich wieder vorbeigeschaut. Hoffentlich nützt die Antwort noch irgendetwas.

viel spaß
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.856
Mitglieder
67.222
Neuestes Mitglied
Gregor
Oben