02. oktober 2003 - 16:38Der er
4 kommentarer og 1 løsning
knap til ændring af lyde i Flash
Hej alle.
Er der nogen kloge hoveder derude, der kan give mig et hint om, hvordan man laver en knap i FLASH, der ændrer en lyd, der er assigned til en bestemt keyframe, til en anden lyd?
Eksempel: En film viser en mand der går. Hver gang hans fod rammer jorden, siger den en lyd. Brugeren skal så kunne vælge en ny lyd fra en liste, som bliver sat i stedet for den oprindelige, så hver gang hans fod rammer jorden, siger det f. eks. "kvæk" i stedet for...
Jep du skal ikke lægge lydende i et keyframe men i stedet bruge actionscript til at lave såkaldte lyd-objecter som du kan lave mange sjove ting med... Her er lidt om hvordan du så gør det:
1. Allerførst importerer du alle de lyde du skal bruge ind i dit library. Her højreklikker du på hver af dem og vælger "linkage". Her sætter du hak ved "Export for actionscript" og giver lyden et navn i feltet (evt bare det der står der).
2. I første frame i din hovedtidslinie opretter du alle lyd-objecterne ved at indsætte og ændre følgende kode:
minLyd1 = new Sound(); minLyd1.attachSound("navn1"); minLyd2 = new Sound(); minLyd2.attachSound("navn2"); //osv med alle de andre lyde
3. Nu kan du afspille og stoppe alle dine lyde når du har brug for det ved at indsætte følgende kode i det pågældende keyframe:
minLyd.stop(); minLyd.start(0,1);
Det burde egentlig være det. Man kan dog ændre punkt 2 på mange forskellige måder, fx til kun at have én fodlyd og så veshæfte den valgte lyd til dette lyd-objekt... Kan godt forklare lidt mere hvis du er interesseret...
tak for svaret. Jeg skal lige prøve det af, før du får point. Jeg kan garanteret godt bruge lidt mere hjælp, hvis du får tid. Meningen er, at den der bruger flash-siden selv kan bestemme lyden til fodtrinet - og altså kunne ændre den, så der kommer en anden lyd i stedet...
jeg har nu importeret 2 lydfiler, og indtil videre sat den ene til at blive afspillet på 3 forskellige frames. Dernæst har jeg lavet en knap, som loader lyden, og den bliver nu afspillet på de 3 frames.
Men hvordan unloader man lyden, så den ikke bliver afspillet mere ?
Og direkte "unloade" lyden ved at bruge: minLyd.delete(); ...som du dog sjældent vil bruge, da det jo altid er rart at have lyden til senere brug. Du kan bare fyre løs, hvis du har flere spørgsmål... :)
jeg har gjort som du sagde i de første to punkter. Derefter har jeg sat dette ind på keyframe 15:
// Play Sound Behavior _global.Behaviors.Sound.bass.start(0,1); // End Play Sound Behavior
Det vil sige, at filmen, som looper, siger bass-lyden hver gang, den når til frame 15, når man først - som bruger - har trykket på den ene knap, jeg har lavet, som indeholder følgende kode:
PROBLEMET er bare, at lyden bliver ved med at komme, når filmen når til frame 15. Den forsvinder altså ikke...derfor tænkte jeg, man måske kunne unloade den på samme måde som man loadede den...
Ville det kunne lade sig gøre, hvis jeg laver lyden som en lille SWF-fil først og så bruger load / unload ?
- Anyway, tak for hjælp indtil videre. Her er points! Jeg håber, du kan løse problemet for mig!!
/Anders
Synes godt om
Ny brugerNybegynder
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.