15. april 2004 - 16:11Der er
9 kommentarer og 1 løsning
Preloader til externe filer
Goddag eksperten.
Jeg har lavet en god PRELOADER, som virker fint hvis den er i selve filmen den skal afspille. Nu vil jeg gerne separere preloaderen fra selve swf-filen der skal afspilles. (sammenligning: man sætter f.eks sjældent en menu på alle undersider på sin hjemmeside.. nej, man laver én menu som alle sider henter).
Nåmen, nu har jeg søgt nettet tyndt uden det store held. Det er meget forvirrende, med styring af forskellig lag f.eks _root.introfilm.gotoAndPlay(), dynamiske tekstfelter som pludselig ikke virker osv. osv. Hvornår skal der f.eks _root på navnet/kommandoen?
Er det noget i denne stil jeg skal bruge?: createEmptyMovieClip("intro",1); intro.loadMovie("intro.swf");
Når du bygger din flash op er det nok smartest at smide din menu i et moveiclip. I _root (hovedtidslinien, altså roden - man kan ikke komme højere op) kan du så også lave et movieclip, dette skal være tomt uden nget grafik i. Dette er beregnet til at hente dine sider ind i. Dette movieclip (også kaldet "mc") trækker du så fra dit library og ud på stage'n. Her markerer du det og åbner properties panelet. I dette er der til venstre et tekstfelt hvor du skal give det et "instance navn", altså det navn, som skal bruges i koden... fx "intro"...
Den kode du har dér gør præcis det samme - altså bare med kode - så undgår man alt det andet bøvl... Koden indholder også metoden loadMovie() som henter en swf fil ind i moveiclippet. Og det er faktisk alt hvad du skal bruge for at vise en extern fil...
...men lidt tilbage til forklaringen med _root og alt det der:
Hvis du fx har dit "intro" mc, så kan du åbne/edite dette og en ny tidslinie og Stage kommer frem... I denne kan du lave et nyt mc, og igen i dette kan du lave et - ud i det uendelige... Altså et movieclip hieraki opstår...
_root henviser til hovedtidslinien, herefter kan man tilføje et "." (punktum) og navnet på et movieclip i _root, så "befinder" man sig inde i dette og kan bruge alle de værdier og funktioner der inde i dette...
fx:
_root.intro.gotoAndPlay(3);
Denne kode får mc'et "intro" i _root til at springe til frame 3...
jeg tror ikke jeg helt forstå det første du skriver.. kan du komme med lidt kode? jeg er interesseret i at automatisere det, så jeg f.eks kan bestemme udefra hvilken film der skal åbnes via preloaderen.. og koden skal så hente og vise den pågældende film. Jeg tror faktisk det er 100% kode der skal til.
instancenavn siger du... hmm. jeg har ellers kun brugt var-feltet, uden problemer.
problemet ligger vist i at kalde de forskellige ting ved deres rigtige navn og sti.
F.eks: loadbar = Math.round((_root.getBytesLoaded()/(_root.getBytesTotal()))*100); Når det drejer sig om en importeret film, skal linien måske hellere være: loadbar = Math.round((_root.intro.getBytesLoaded()/(_root.intro.getBytesTotal()))*100);
ok - her et eks. på en fuldent funktion der henter en film ind i et mc, der får navnet "swfViewer" (der står "får" fordi det laves med acrtionscript!):
Hej, jeg følger MEGET interesseret med i dette indlæg, da jeg står med præcis samme problem. Håber at det er i orden at jeg blander mig med lidt spørgsmål til Pyroman (og andre!) Jeg har allerede en preloader i 1. frame som tæller bytes og viser %'er og en loadbar, men jeg har også brug for at én stor, og flere små swf'er loades i baggrunden - kan dette script som Pyroman har vist ovenfor kombineres med min preloader?? og hvor præcis skal det så indsættes i "moder-swf'en"??
rudestrand => du kan sagtens hente flere filer ind samtidig - de skal bare hentes ind i forskellige movieclips. Preloaderen kan måske godt blive et problem, fordi flash ikke finder ud af hvor meget filerne fylder fra starten af. Den finder ud af hvormeget de to første filer fylder - når den ene af disse er hentet færdigt finder den hvor meget den næste fylder og begynder at hente på den... Flash henter kun på 2-3 filer ad gangen - de andre står nærmest i kø - og man ved ikke hvor meget de fylder...
Men opret et spørgsmål med hvordan koden lige skal takles, så kommer der nok hurtigt svar... :)
Jooo - men hvis man skal preloade dem samlet så ville det jo være mest logisk at hente dem alle samtidig - men her hopper flash så af - fordi den ikke kan finde ud af hvor meget filerne fylder, før det begynder at hente dem... Hvis ens filer fylder nogenlunde det samme, så kan man sætte en værdi for gennemsnittet af hvor meget de fylder, det bliver en udemærket preloader...
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.