Avatar billede adolph Nybegynder
22. marts 2005 - 15:20 Der er 17 kommentarer og
1 løsning

sound start med as

Jeg har et loop der skal køre - enten som event eller med attachSound funktionen -
problemet er at brugeren dynamisk skal kunne bestemme hvor i lydfilen loopet skal starte.
Med en slider kan man flytte startpunktet på loopet. Fx. trækkes slideren til højre er loopets nye start punkt flyttet 1 sec.

Jeg har lavet en version hvor lyden ligger i en mc og streamer - men så kommer der det lille hul i lyden til sidst og det er ikke godt nok..
Kan man evt. bruge funktionen duration eller position til noget ?
Avatar billede barklund Nybegynder
22. marts 2005 - 15:23 #1
Du kan bruge Sound-objektet - det er nok smartest.

Så kan du init'e den med:

var my_sound = new Sound(this);
my_sound.attachSound("minmp3");

Og derefter spille på et bestemt sted (og loope) med:

my_sound.start(1); // start 1 sekund inde
my_sound.onSoundComplete = function() {
    this.start(1); // igen et sekund inde
};

Og så skulle det virke :)

--
Morten Barklund
Avatar billede adolph Nybegynder
22. marts 2005 - 15:30 #2
det lyder rigtigt fornuftigt -- jeg kigger lige på det..
Avatar billede adolph Nybegynder
22. marts 2005 - 15:48 #3
det virker rigtigt fint :) - jeg har sat en variabel ind i stedet for tallet 1 og kan nu med slideren styre hvor i loopet det skal starte. Mit problem er nu at jeg gerne vil have det sker realtime - altså at når brugeren har indstillet slideren på fx 4 så starter loppet med det samme 4 sek. inde og venter ikke først til loopet er spilllet færdigt.
Avatar billede barklund Nybegynder
22. marts 2005 - 15:50 #4
Så kan du jo bare sørge for, at din slider hver gang den ændres kalder my_sound.stop(), my_sound.start(v); - hvordan ved jeg jo ikke lige, da jeg ikke kan se din slider :)
Avatar billede adolph Nybegynder
22. marts 2005 - 16:40 #5
Det virker fantastisk !"! tak for hjælpen - smid et svar så jeg kan give point :)
Avatar billede barklund Nybegynder
22. marts 2005 - 16:42 #6
Jæssør :)
Avatar billede adolph Nybegynder
23. marts 2005 - 10:04 #7
- er lige løbet ind i et nyt - forhåbentligt - lille problem : jeg vil gerne have at der spiller 4 loops samtidigt - de kan godt spille samtidigt men jeg kan ikke bruge 2 slidere samtidigt - flytter jeg den ene slider muter den de andre lyde .. skal funktionerne hedde noget forskelligt eller hvad kan det være ?
Avatar billede barklund Nybegynder
23. marts 2005 - 10:41 #8
Tark for points.

Men derudover kan jeg ikke lige overskue, hvad du snakker om - må vi se?
Avatar billede adolph Nybegynder
23. marts 2005 - 10:52 #9
lige nu har jeg to loops samtidigt i AS frame står der:

var sound1 = new Sound(this);
sound1.attachSound("sound1mc");
lang4 =0;
sound1.start(lang4, 999);
sound1.onSoundComplete = function () {
    sound1.start(lang4,999);
};
var sound2 = new Sound(this);
sound2.attachSound("sound2mc");
lang3 =0;
sound2.start(lang3, 999);
sound2.onSoundComplete = function () {
    sound2.start(lang3,999);
};

Og på slideren:

onClipEvent (load) {
_parent.volSlider.drag. _x+1;
}
onClipEvent (enterFrame) {
vol = _parent.volSlider.drag._x+1;

_root.lang4 = vol/5.8;
}

Og i på knappen i volslideren:
on (press) {
startDrag ("", false, 0, 0, 40, 0);
}
on (release, dragOut) {
stopDrag();
stopDrag();
_root.sound1.stop();
_root.sound1.start(_root.lang4, 999);
}

Desuden kan man styre volume og pan på de 2 loops
Men både volume, pan og startpunkt virker kun på et loop af gangen.
Jeg ved det er lidt af et rum projekt - du kan se en tidlig version på: http://www.itu.dk/people/adolph/ADP/ - det er en version hvor jeg bruger stream - de 4 sten styrer loops vol + pan og slideren styrer starttidspunktet. Håber det blev bare en smule mere klart :)
Avatar billede barklund Nybegynder
23. marts 2005 - 10:58 #10
Tja, hvis de alle sammen ændrer på lang4 og lyd1, så er det vel derfor?

Men hvad er det problem - skal du ændre det for begge lyde på én gang - selvom der kun er en slider? Eller skal du via to slidere ændre det for hver af dem individuelt?

Det sidste løses delvist ved at give lydene hver deres tidslinje i constructoren:

var sound1 = new Sound(this.createEmptyMovieClip("lyd1", 1));
var sound2 = new Sound(this.createEmptyMovieClip("lyd2", 2));

De skal nemlig høre til hver deres tidslinje, for at volume og pan kan styres individuelt. Tror dog godt de kan stoppe og startes selv de er på den samme - men prøv om ovenstående ikke hjælper lidt.

--
Morten Barklund
Avatar billede adolph Nybegynder
23. marts 2005 - 11:11 #11
takker - Jeg prøver at kigge på sagerne...
Alle 4 lyde har hver sin slider til at styre længden og hver sin slider til at styre volumen og pan
Avatar billede barklund Nybegynder
23. marts 2005 - 11:17 #12
Så mangler du nok bare at have alle 4 lyde på hver sin tidslinje.

Men umiddelbart lyder det lidt i mine ører som om, du har det samme script 4 gange - og bare har rettet lidt i det hvert sted? Det er en fantastisk tåbelig metode, som kunne gøres meget smartere - men det tager vi senere :)
Avatar billede adolph Nybegynder
23. marts 2005 - 11:50 #13
det spiller ikke rigtigt -- jeg har styr på det med længden af loops - men jeg kan ikke få det til at virke med at styre volumen på flere loops samtidigt - kan du skrive helt fra start hvad der skal stå i AS framen nå jeg skal afspille to loops samtidigt og også have mulighed for at styre volumen på den hver for sig ?
Avatar billede barklund Nybegynder
23. marts 2005 - 12:01 #14
Du skal i alle dine new Sound-sætninger angive et unikt movieclip som argument:

new Sound(her_skal_stå_et_unikt_movieclip)

Det var jo det jeg skrev ovenover?

--
Morten Barklund
Avatar billede adolph Nybegynder
23. marts 2005 - 12:51 #15
jeg har fået det til at virke --- du er sgu en helt !!! takker mange gange igen ..jeg skylder en stak point -- hvordan kan jeg give dig flere point ?
Har kun et lille lille bitte smårgsmål mere - hvilken script skal jeg bruge for at fjerne de tomme mc ? har prøvet med _root.lyd1.removeMovieClip(); men det virker ikke
Avatar billede barklund Nybegynder
23. marts 2005 - 12:54 #16
Jo, det burde virke fint nok - men du kan jo ikke se dem, så de gør vel ingen skade?

Og derudover kan du ikke give flere point i et lukket spørgsmål.
Avatar billede adolph Nybegynder
23. marts 2005 - 13:30 #17
jeg skulle bruge det til at nulstille projektet - men har fundet en anden løsning ..
tak for denne gang :)
Avatar billede barklund Nybegynder
23. marts 2005 - 13:42 #18
Well, held og lykke ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB