13. december 2005 - 18:47Der er
10 kommentarer og 1 løsning
lyd on/off i flash med Stream
hej eksperterne
Jeg har lavet 4 flashfilm som skifter oveni hinanden med: loadMovieNum("fil1.swf", 0); knapper i hvert film, det virker helt fint
jeg har lagt lyde ind med "Stream setting" i properties for at kunne synce lyde helt med billederne og det er også fint nok MEn jeg vil gerne have en knap som slukker alt lyde og tænder dem igen. men de lydknapper jeg kan finde er allesammen med Movieclips, men jeg vil bare have lyd ON/OFF uden at der skal loades ting eller skrives til et MC (hvis man kan med "fade" er det endnu finere, men ikke højst nødvendigt.)
Hvis du lægger lydene ind dynamisk vha. Sound()-objekter i stedet for i authoring environment er det rimelig simpelt, for Sound-objekter har både start(), stop() og setVolume()-metoder, der skulle kunne klare ærterne for dig.
Idet du trækker ting ind vha authoring tool nægter du desværre dig selv adgang til en del dejlige funktioner ved Sound()-classen. Men du kan selvfølgelig altid bruge den globale metode stopAllSounds() til at kvæle al lyd.
Sig til, hvis du vil gøre det dynamisk og derefter ønsker at kunne fade ind og ud. Jeg mindes at have lavet noget i den stil for en del tid tilbage (hvilket vil sige, at det ikke er OOP, men det virker stadig)
ja, det er helt simpel animation uden kode whatsoever (tegnefilm) og ja lydende ligger i et lag, sync'ed op til animationen (frame by frame) jeg har en navigation (gå til start, stop, play, hop til ending) som fungerer fint i filmen.
stopAllSounds() virker helt fint jeg mangler bare en startAllSounds() vd ikke om man kan? umidelbart virker det helt i skoven at Flash tilbyder funktionen med at ligge lyde ind i lagene og så KUN kan slå den fra, det giver ingen mening jo.?
jeg har ingen erfaring med classer, virker også lidt overkill på noget SÅ simpelt som stop/start lyd...?
Den måde at lægge lyd ind på er primært beregnet til sådan noget traditionel frame-by-frame animation, som MacroMedia ikke just har prioriteret særlig højt i de sidste par versioner, i hvert fald er der ikke sket den store udvikling. Men der er faktisk en vej udenom. Det kræver, at du finder frem til din lyd i dit library, og markerer den til export i Linkage Properties i lydfilens properties. Her giver du den et export-navn (fx "dinlyd"):
Koden for at lave det er noget i denne retning (virker også i MxPRO):
dinLyd = new Sound(); dinLyd.attachSound("dinlyd");
Så vidt jeg ved vil det virke med din lyd attachet på din tidslinje.
Så har du adgang til alle de rare metoder i Sound-klassen, såsom dinLyd.start(); dinLyd.stop(); dinLyd.setVolume();//0-100
hej, det lyder både og skidt jo skidt at funktionen ikke virker som stopAllSounds() det ville umidelbart være logisk jo. MEn godt at der er en løsning ;-))
jeg skal lige forstå det ret, jeg fjerner altså lydende (fysisk) fra laget og tilføjer et "exportNavn" i biblioteket på en lyd fx "Lyd1" der hvor lyden så før var indat smider jeg en frame med koden: dinLyd = new Sound(); dinLyd.attachSound("Lyd1");
men vil den streame på samme måde..? altså afspille filmen styrret af lyden og ikke grafikken (altså springe frames hvis animationen ikke kan følge med i playeren) Jeg bruger jo en navigation hvor filmen hopper til start og til slut samt 6-7 punkter (lables) der i mellem. brugeren kan altså sagtens stoppe filmen midt i en lyd.
eller vil det virke som fx med propertien Sync = start eller event og altså ikke streame?
(jeg har ikke flash på maskinen her (endnu) men ser senere i aften. så jeg kan ikke prøve.
men tusind tak for svarene indtil videre, der er virkeligt svært at finde info på det jeg har glukket i jeg ved ikke hvor mange fora, men alle snakker kun om lyd i MC's eller objekt-lyd.
"jeg skal lige forstå det ret, jeg fjerner altså lydende (fysisk) fra laget og tilføjer et "exportNavn" i biblioteket på en lyd fx "Lyd1" der hvor lyden så før var indat smider jeg en frame med koden: dinLyd = new Sound(); dinLyd.attachSound("Lyd1");
men vil den streame på samme måde..? altså afspille filmen styrret af lyden og ikke grafikken (altså springe frames hvis animationen ikke kan følge med i playeren) Jeg bruger jo en navigation hvor filmen hopper til start og til slut samt 6-7 punkter (lables) der i mellem. brugeren kan altså sagtens stoppe filmen midt i en lyd.
eller vil det virke som fx med propertien Sync = start eller event og altså ikke streame? "
Det skulle IKKE være nødvendigt at fjerne lyden fra tidslinjen, og dermed vil den stadig have de egenskaber, du har tildelt den med authoring tool. Dog har jeg ikke selv prøvet det af, så jeg kan ikke sige det med sikkerhed.
Mit råd er derfor, at du prøver det af, og så skriver igen, hvis det ikke virker. Så må vi jo se, hvad vi kan gøre.
så fik jeg efter endt ferie prøvet alting af, desværre viser det sig at ALLE andre løsninger (som jeg har kunne finde) end at smide lyden direkte i tidslinjen skaber problemer med sync. de fleste løsninger virker i teorien men desværre ikke i praksis...
alle mine test viser at syncen halter mellem 30-50 frames ved en film på 3000 frame ved 35fps, altså omkring 1 sekund ovr 3000frames, hvilken ikke er meget men nok til at det i praksis ikke virker. Mange fora bekræfter desværre også dette.
så jeg endte med en helt anden løsning som ikke includerer flash som andet en animation, resten ordnes i AFX. sur roev men det virker tilgengæld.
yderst pinligt for MM (adobe's skyld er det jo ikke ;-)
smid venligst et svar så vil jeg lukke spørgsmålet
I øvrigt skulle det være muligt at synce ting med dine film, hvis du lægger cuepoints ind i .flv-filerne (hvis det er altså er den slags film, vi snakker om), enten dynamisk eller under encodingen, og så bruger de cuepoints til at udløse de forskellige lyde.
Men godt, at du har fundet en anden løsning, trods alt ...
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.