Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-09-2005, 16:16   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
Soundloop mit 2 Sounds???

hallo,

weiss einer von euch, wie man 2 Sounds (Beispiel) so loopen kann, das man eine endlosschleife erhält?
ich habschon ein paar versuche hinter mir, aber klappt irgendwie nicht so.

als beispiel sollte sich:
mysound1 ----- 4 x wiederholen (mySound1.start(0, 4) und dann zum
mySound2 ---- springen der sich 2 x wiederholt

und wieder zurück, damit die schleife neu beginnt!
Routine ist offline   Mit Zitat antworten
Alt 28-09-2005, 16:31   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Kleiner Ansatz:
ActionScript:
  1. wiederholung = 0;
  2. meinSound = new Sound(this);
  3. meinSound.loadSound("mein.mp3",0);
  4. meinSound.start(0,1);
  5.  
  6. meinSound.onSoundComplete = function(){
  7. _level0.wiederholung ++;
  8. if(_level0.wiederholung == 4){//nächsten Sound
  9. _level0.wiederholung = 0;
  10.  
  11. meinSound = new Sound(this);//oder über eine Funktion
  12. meinSound.loadSound("meinzweites.mp3",0);
  13. meinSound.start(0,1);
  14.  
  15. }
  16. else{
  17. _level0.meinSound.start(0,1);
  18. }
  19. }
Das zweimalige Wiederholen des zweiten Sounds könnte bspw. über eine zweite Zählervariable gecheckt werden.
  Mit Zitat antworten
Alt 28-09-2005, 16:35   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hier, ich hab mal das auf die schnelle zusammen gebastelt.
ActionScript:
  1. var counter:Number = 0;
  2. var my1_sound:Sound= new Sound(this);
  3. var my2_sound:Sound = new Sound(this);
  4. my1_sound.attachSound("s1");
  5. my2_sound.attachSound("s2");
  6. my1_sound.stop();
  7. my2_sound.stop();
  8. var sound1_duration = my1_sound.duration;
  9. var sound2_duration = my2_sound.duration;
  10. // : soundlaenge 1.3 sec
  11. var s1_iv:Number= setInterval(sFunc1, sound1_duration);
  12. var s2_iv:Number;
  13. function sFunc1()
  14. {
  15.     my1_sound.start(0, 1);
  16.     counter++;
  17.     if (counter>=4) {
  18.         sFunc2();
  19.         counter = 0;
  20.         s2_iv = setInterval(sFunc2, sound2_duration);
  21.         clearInterval(s1_iv);
  22.     }
  23. }
  24. function sFunc2()
  25. {
  26.     my2_sound.start(0, 1);
  27.     counter++;
  28.     if (counter>=2) {
  29.         sFunc1();
  30.         counter = 0;
  31.         s1_iv = setInterval(sFunc1, sound1_duration);
  32.         clearInterval(s2_iv);
  33.     }
  34. }

Edit: Wieder nur Zweiter!

Ohh! Ich seh grad, is ja MX, mußt du halt die Typisierung weglassen
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (29-09-2005 um 11:45 Uhr) Grund: Syntax ..._sound.duration; geändert
psyk ist offline   Mit Zitat antworten
Alt 28-09-2005, 17:02   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
ich werds mal ausprobieren, aber das mit "per zeitsteuerung und counter " einsetzen widerspricht wieder der synchronität.
das ist ja das problem bei einem loop, wenn er synchron sein soll. erst wenn der sound fertig ist (x-mal...onSoundComplete) dann muss sofort der nächste einsetzen und wenn du es nur per "ungefährere zeit" machst, dann ist das nur noch relativ.

werd mich nachher nochmal ransetzen... jetzt erstmal pause "puuuh". danke erstmal, aber wenn einer noch was posten möchte...

immer her damit
Routine ist offline   Mit Zitat antworten
Alt 28-09-2005, 17:15   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
ICH hab da mal in die Flash-Hilfe geschaut.
Und siehe da, es gibt ja direkt eine Eigenschaft um die Länge eines Sound zu
ermitteln.
ActionScript:
  1. var sound1_duration = my1_sound.duration;
  2. var sound2_duration = my2_sound.duration;
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 28-09-2005, 20:35   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
ich finde den ersten Ansatz ganz gut und hab ihn auch ausprobiert... funktioniert ganz gut, aber macht ja im prinzip erstmal auch nichts anderes, als Sound start("",""); und dann kann man auch mit onSoundComplete einen anderen laden, aber wie, bzw,. wo mus ich den 2ten Sound weiterzählen?
ich habs mal für meine bedürfnisse zusammen gebastelt, weil ich nicht mit leveln arbeite.

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){//nächsten Sound
                wiederholung = 0;
track2 = new Sound(_root.a2);//oder über eine Funktion
track2.attachSound("mySound2");
track2.start(0,1);
}
else{track1.start(0,1);
        }
};
vielleicht kannst du es mir freundlicherweise weiter basteln... ich häng da schon den ganzen tag vor und hab nur noch codeschnipsel vor den augen...
Routine ist offline   Mit Zitat antworten
Alt 28-09-2005, 20:38   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
weil ich nicht mit leveln arbeite
Ach nee, wo lädst du denn dann deine Objekte ab??

Zitat:
ber wie, bzw,. wo mus ich den 2ten Sound weiterzählen?
Na, einfach analog mit einer zweiten Variablen und einer erweiterten if-Abfrage erstellen...

Geändert von agedoubleju (28-09-2005 um 20:39 Uhr)
  Mit Zitat antworten
Alt 28-09-2005, 20:49   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
meinte das auch eher so, das jeder ja so seine angewohnheiten hat (grad bei flash) weil es da ja bekanntlich 100 wege gibt, um zum ziel zu kommen...

wie du siehst, bezieh ich es lieber direkt auf den mc. (da weiss man, was man hat )

ja, das mit der if bedingung ist mir auch irgendwie klar, nur ich bekoms einfach nicht hin, dass die schleife läuft...

kannst du mir den codeschnipsel so umbauen, das es läuft? ich häng mich echt bald auf...

Geändert von Routine (28-09-2005 um 20:51 Uhr)
Routine ist offline   Mit Zitat antworten
Alt 29-09-2005, 11:33   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
Ich habs immer noch nicht hinbekommen...

ich hab übrigens mal das as von psyk reingebastelt (waren zwar kleine bugs drin, aber ansonsten auch ok) nur leider bricht der player das nach ner kurzen zeit ab, weil er eine endlosschleife erkennt...

mit "goto" kann man auch nix erreichen, weil da jeder sound nur 1mal wiedergegeben wird, also 1mal gespielt und ein erneutes abspielen ist dann nicht mehr möglich... auch komisch... "grummel"

ich kann wunderbar Sound1 x-mal wiedergeben, dann zu Sound2 und x-mal wiedergeben, aber nen Loop... nö

ist das sooo schwer:
1,2,1,2,1,2,1,2 ...... menno

Geändert von Routine (29-09-2005 um 12:36 Uhr)
Routine ist offline   Mit Zitat antworten
Alt 29-09-2005, 17:10   #10 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 11
habs jetzt hinbekommen ...

Geändert von Routine (29-09-2005 um 17:40 Uhr)
Routine ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele