Avatar billede nikolajhygebjerg Nybegynder
03. maj 2005 - 20:12 Der er 8 kommentarer og
1 løsning

stop all sound

Hej

Jeg er i gang med et lille computerspil til børn. Det er en række musikanter der spiller musik. Man starter dem ved at trykke på dem hver især (de har et movieclip hver, som indeholder lyd) og har i den anledning brug for en Stop all sounds kommando, som kan gå ind og stoppe alle musikanter. Hvis jeg laver en standard STOP ALL SOUND kommando stopper de i en frames tid, og spiller så videre...
Avatar billede pyroman Nybegynder
03. maj 2005 - 20:24 #1
tjaa der er to måder:

Du kan bruge Sound-objektet - så bestemmer man selv helt hvornår lydene skal spille og slutte - men det kræver lidt kodning...

Eller du kan lave et lille hack:


var stopAlLyd = true;
function onEnterFrame(){
  if(stopAlLyd)
    stopAllSounds();
}

Så kan du styre det ved at ændre værdien af stopAlLyd...
Burde virke...
Avatar billede nikolajhygebjerg Nybegynder
03. maj 2005 - 20:26 #2
Ups - hvis jeg bare stopper lyden (også selvom det ikke virker optimalt) stopper musikanternes animationer ikke! Så det jeg skal bruge er en kommando som får alle movieclippene til at stoppe (eller hoppe til frame 1 i hvert af dem)
Avatar billede pyroman Nybegynder
03. maj 2005 - 20:51 #3
Så er du nødt til at give alle dine musikanter nogle instancenavne, fx "trommer", "trompet", "klaver" osv - så kan man gøre således - 1. frame i det mc hvori dine musikanter er:


var musikanter = ["trommer","trompet","klaver"];
// Ovenover skal du bare indsætte dine egne instancenavne - separeret med et komma
function stopMusikanter(){
  for(var i=0; i<musikanter.length; i++){
    this[musikanter[i]].stop();
  }
}

og når du vil stoppe musikanterne:

stopMusikanter();
Avatar billede nikolajhygebjerg Nybegynder
04. maj 2005 - 12:55 #4
fedt. Desværre er jeg ikke så stærk til actionsscript, når vi når ud i det her. Hvis jeg giver mine musikanter disse instancenavne, skal jeg så sætte den kodeklump ind i frame 1 som du skriver, men hvad så med stopMusikanter(); skal det tillægges en knap?
Avatar billede nikolajhygebjerg Nybegynder
04. maj 2005 - 13:05 #5
Jeg har prøvet det nu, og der sker ikke rigtigt noget, men umiddelbart ved jeg heller ikke helt med den der stopMusikanter(); for den er bare sort tekst - den skulle vel blive blå hvis det var en kommando?
Avatar billede pyroman Nybegynder
06. maj 2005 - 13:41 #6
i koden ovenover har jeg lavet min egen funktion - dvs. en gruppering af kode som kan udføres med en enkelt kommando: stopMusikanter();

koden skal du skrive i 1. frame - fx i hovedtidslinien, hvis det er deri du har dine musikant-movieclips...

Når du så vil stoppe musikanterne - det kan fx være på en knap:

on(release){
  stopMusikanter();
}

eller

minKnap.onRelease = function(){
  stopMusikanter();
};


eller det kan være i et frame i samme tidslinie som den funktionen står, så laver du bare et keyframe og indsætter denne linje:

stopMusikanter();
Avatar billede nikolajhygebjerg Nybegynder
16. maj 2005 - 10:38 #7
hmm

det vil bare ikke virke. Hvis nu jeg tilbyder dig 100 point ekstra, vil du så kigge på .fla filen?
Avatar billede nikolajhygebjerg Nybegynder
18. maj 2005 - 21:36 #8
Jeg kan ikke rigtigt lukke dette spørgsmål, da hjælpen er reel nok, den virker bare ikke. Hvis du svarer på ovenstående spørgsmål, skal jeg give dig point. Men jeg opretter spørgsmålet omformuleret igen.
Avatar billede nikolajhygebjerg Nybegynder
06. januar 2006 - 17:13 #9
han ville vist ikke svare
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