19. november 2004 - 14:53Der er
35 kommentarer og 1 løsning
Rækkefølge for preloading
Jeg har en swf med noget grafik og noget lyd, og nu er jeg ved at lave en preloader. Men hvordan sikrer jeg mig, at preloaderen ikke begynder at loade lyden først, som er sat til stream?
Og - hvordan bestemmer jeg rækkefølgen, som mine billeder preloades i?
Streamer du fra en ekstern fil, skal du bare vente med at kalde koden til den indtil hele swf'en er hentet. Streamer du fra en lyd der ligger i fla'en, kan du hoppe ind i librariet, finde lyden, højreklikke og vælge egenskaber. Her skal du så fjerne fluebenet fra "Export in first frame"
Billeder hentes i den rækkefølge de ligger på i tidslinje. Billeder der ligger på frame 5 bliver altså loadet før billeder i frame 10. Ligger de på samme frame bliver det billede der ligger neders hentet først. Men den rækkefølge kan du selv ændre i fil->publish settings
Yep - og teoretisk set, gør det samme sig gældende som på main timeline. Ligger 2 billeder på samme frame, hentes det i nederste frame først. (Og for at slå det fast: et billede beligende inde i et mc på frame 100 loades før billedet beliggende på main timeline frame 5)
Prøv evt. selv at teste ved at trykke ctrl-return 2 gange efter hinanden. Flash's indbyggede test-downloader virker ganske fornuftigt (så længe man ikke bruger FOR mange loadMovie()'s)
Er ikke helt på hvad du mener? En preloader benyttes jo som regel til at loade alt inden filmen sættes igang. Vil du kun loade en del af filmen inden du skyder igang.... eller er du i tvivl om hvad der sker med mc'er du attacher?
Nej, ikke umiddelbart. Men du kan jo "snyde", ved at lægge en instance af dit billede offstage i frame 1. Ikke den kønneste løsning i verden, men både legal og effektiv.
Du sagde: Her skal du så fjerne fluebenet fra "Export in first frame" - jeg kan ikke finde det flueben under properties, når jeg højreklikker på lyden i biblioteket?
ok den ligger under linkage ikke properties, men kan ikke klikkes på, før en af de andre felter vinkes af - hvilket af disse tre andre skal jeg vinke af så? vinke af = sætte flueben i.
sorry, skulle lige have indføjet, at du skal trykke linkage når du har højreklikket.
Har du ikke allerede givet lyden et linkage-navn, kan du gøre det nu. Det åbner muligheden for at fjerne den fra første frame (og giver mulighed for at tilgå lyden via actionscript)
men stadigvæk når jeg tester preloadingen, så loades hele filmen - både grafik og lyd, inden filmen begynder at spille - det er ved at drive mig til vanvid!
Når jeg kigger på min "frame by frame graph", kan jeg ikke se, hvad der er lyd og hvad der er grafik - kun datamængder. Det ser ud som om, at programmet har samme problem, for det begynder ikke at afspille den søjle, som lyden ligger i, før end hele søjlen er loadet?
Burden den ikke kunne begynde at afspille lyd, inden hele søjlen med lyd er loadet?
Ja, bandwidth profileren skelner ikke imellem hvad der er hvad.
Grunden til at din lyd ikke bliver spillet, skyldes at du har fjernet fluebenet i "Export for AS", ikk? På den led insisterer Flash på at AL lyd skal være loadet inden det afspilles (også selvom man kalder det for stream (faktisk har det ikke meget med ægte strean at gøre når lyden ligger i en swf!)). Har du overvejet at lægge din lyd udenfor swf'en og loade den ekstern? Eller er din film meget afhængig af, billede og lyd er tæt knyttet til hinanden?
Hvor stor er din film egentlig (altså kb-mæssigt)? For den SKAL være rimelig stor, 1 MB+, før din måde at gøre det på kan betale sig.
Ekstern lyd duer ikke til mit projekt af helt andre grunde og min film er efhængig af, at lyd og billede fungerer er tæt knyttede.
Så vidt jeg kan se, har bandwidth profileren kun at gøre med main timeline, for lægger jeg lyden der og trækker den ud, fungerer det fint, men lægger jeg lyden nede i et clip, så er det at bandwidth profileren ser det som een stpr klump, der skal loades færdig, før den begynder at spille lyden.
ja ok, hvis du bruger din lyd på den måde, har du ikke de store alternativer.
Skulle jeg vælge en løsning, så ville jeg lave en sjov preloader, eller måske fortælle en lille forhistorie imens resten af filmen blev loadet ind. Altså preloade ALT inden jeg skød igang. (1 MB er ikke alverden (mindre en 20 sek) for de fleste brugere efterhånden)
Inspiration: www.ninjai.com - her smider de en lille reklame (af varierende kvalitet) imens der hentes (noget) af filmen. Og deres film fylder 3-6 MB
Har på fornemmelsen at du er ude i noget animation hvor billede og lyd skal følges 100% ad? Og er du det, så hænger du på at lægge lyd og billder sammen på en tidslinje... Dvs. at der er et alternativ, men det går ud på at du kører din lyd igennem et 3. partsprogram som analyserer lyden og laver et tal-array udfra det. Det er en god løsning hvis du vil læbesynkronisere, eller har et godt musiknummer med en go' skomagerbas eller noget andet som er meget fremtrædende i lydbilledet. Så kan man f.eks. time sine dansere til at hoppe højt på de mest gennemtrængende beats. Det er dog ikke en løsning jeg vil anbefale medmindre du er rimelig komfortabel med scripting, har helt styr på hvad et array er, og ikke er bange for at bruge en del tid på det.
du kan da godt bruge din lyd som eventlyd på tidslinjen. Downside er bare, at du ikke kan være sikker på at grafikken følger lyden. Men så igen, laver du din Flash på en fornuftig måde uden alt for mange samtidige animationer og alpha-overgange, bliver det kun et problem på halvgamle pc'er....
Mit spm er meget konkret - Kan man virkelig kun streame lyd, hvis den ligger trukket ud i main-timelinen, men ikke i et MC, når lyden ikke må ligge som en ekstern lydfil ???
Flash sætter også en streamet lyd igang som ligger nede i et mc. Men i loadrækkefølgen, skal den jo lige nå til mc'et og lave en lille lydbuffer før den går igang med at afvikle den. Så snart lyden inde i mc'et starter, loades videre på main timeline.
Det kan jeg simpelthen ikke få til at virke - hos mig afvikles lyden ikke, før framen, hvori lydclip'et med lyden ligger, er færdigloadet? Såsnart jeg lægger lyden op i mail-timelinen, fungerer streamingen fint.
Min lyd er 3 min lang speak. Har sat den til streaming i properties.
Den må heldigvis gerne ligge i _root i mit tilfælde, men hvad nu hvis jeg havde haft flere forskellige speaks, som skulle streames på denne måde - så havde gode råd været dyre, hvis man ikke kan streame dem nede i hver sine MC's.
Med fare for at lyde stivnakket, mener jeg stadigvæk at man, såfremt det er sat korrekt op, kan streame fra et mc. Har selv lige testet, en godt nok ukompliceret opstilling, men her kørte det som det skulle. Måske er ER din preloader som laver skaber nogle mærkværdigheder?
Tror du er kommet til at spekulere for meget i præcis denne detalje. Lav en preloader til hele din film, og du er sikker på ikke at løbe ind i nogen problemer. Eller start "forfra", importer de enkelte elementer til en ny fil og se hvad der sker undervejs.
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.