Avatar billede ohmish Nybegynder
15. april 2004 - 16:11 Der 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");
Avatar billede pyroman Nybegynder
15. april 2004 - 17:23 #1
Ja... men forklarer lidt nærmere

Du kender forhåbentligt til movieclips!??

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...

Håber du forstår :)
Avatar billede ohmish Nybegynder
15. april 2004 - 17:46 #2
jeg er mest til koderiet (actionscript).

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.
Avatar billede ohmish Nybegynder
15. april 2004 - 17:51 #3
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);

utter was?
Avatar billede pyroman Nybegynder
15. april 2004 - 18:44 #4
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!):

1. frame i _root:

function loadSWF (filePath){
  if(!swfViewer) _root.createEmptyMovieClip("swfViewer", 1);
  swfViewer.loadMovie(filePath);
  this.onEnterFrame = function(){
    loadedBytes = swfViewer.getBytesLoaded();
    totalBytes = swfViewer.getBytesTotal();
    percent = Math.round(loadedBytes/totalBytes*100);
    if(loadedBytes == totalBytes && totalBytes > 0){
      delete this.onEnterFrame;
    }
  }
}

Så kan du simpelthen skrive ligemeget hvorfra og på hvad:

_root.loadSWF("filnavn.swf");
Avatar billede rudestrand Nybegynder
16. april 2004 - 09:40 #5
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"??
Avatar billede pyroman Nybegynder
16. april 2004 - 16:34 #6
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... :)
Avatar billede nikolajdu Nybegynder
16. april 2004 - 16:57 #7
Det nemmeste er da at loade én af gangen og så hente den næste - Det virker da også meget mere logisk end at have 3 halve på vej.
Avatar billede pyroman Nybegynder
18. april 2004 - 13:23 #8
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...
Avatar billede nikolajdu Nybegynder
21. april 2004 - 14:30 #9
Det må være en smagssag ;-)
Avatar billede ohmish Nybegynder
22. juli 2004 - 14:37 #10
smid et svar
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel