Avatar billede mr-baluba Nybegynder
13. december 2004 - 10:01 Der er 18 kommentarer og
1 løsning

Preload then play

Jeg har 2 swf'er. En intro animation med en preload ting (Progress Bar og Loader component), og en swf med main content.
Den loader fint nok, men den begynder at afspille swf'en lige så snart den har loadet den (kan høre musikken fra main filen). Jeg ville gerne have at intro animationen kører færdig inden "main" filen bliver vist... eller hørt.
Har kigget massere af steder man kan ikke rigtigt hitte ud af det.
Avatar billede _k Nybegynder
13. december 2004 - 10:56 #1
Loader du din indholds-swf ind i preload-swf'en, eller har du en 3. som holder styr på det hele?
Hvordan ser dit preload-script ud, og hvor mange frames strækker din preloadanimation over (og ligger animationen inde i et mc for sig selv, eller på main timeline)?
Avatar billede mr-baluba Nybegynder
13. december 2004 - 11:10 #2
Egentlig skal indholds-swf bare erstatte introen, altså afspilles i Level 0.

Preloadscrip (bruger jo de indbyggede components):
loader.autoLoad = false;
loader.contentPath = "Museum_main.swf";
pBar.source = loader;
loader.load();

Der er ikke rigtigt nogen preload anim, andet end progressbaren der går mod 100%, intro animationen er stoppet mens der preloades.

Kig her: www.ullebulle.dk/Museum_intro1.swf
Avatar billede _k Nybegynder
13. december 2004 - 11:44 #3
Hvis jeg forstår dig ret, vil det så ikke være smartest at samle dine 2 swf'er i én og køre preload på dem sammen? Når det hele så er loadet, sætter du introen igang og gør det muligt at hoppe videre med det samme. Umiddelbart ser dine filer ikke ud til at være så store at det er nødvendigt at splitte dem op.
Er der en god grund til at de er adskilt nu?
Avatar billede mr-baluba Nybegynder
13. december 2004 - 11:56 #4
Njaa, tænkte at main filen nok kommer til at fylde lidt mere. Men du har nok ret.
Men det bliver vel det samme problem hvis jeg sætter mainfilen ind efter introen. Den starter jo stadig med det samme.
Avatar billede mr-baluba Nybegynder
13. december 2004 - 11:59 #5
Nå nej, det gør den jo nok ikke... Roder lige lidt mere med det. Jeg skal vel lave et loop, med en if(loaded er ok) gotoandplay agtig ting...
Avatar billede _k Nybegynder
13. december 2004 - 12:10 #6
Lige præcis. Sig til, hvis du støder ind i nogle konkrete problemer.
Avatar billede mr-baluba Nybegynder
13. december 2004 - 12:29 #7
Øhh... til! :)  Har nu sat dem sammen. Droppede de indbyggede komponenter, og lavede en bar af en firkant. Læste herpå eksperten at det var det man skulle :P
flg kode sidder på bar'en i frame 110:

onClipEvent(enterFrame){
  loading = _root.getBytesLoaded();
  total = _root.getBytesTotal();
  percent = Math.round(loading/total*100);
  percentage = percent+"%";
  loadbar._width = percent;
  if(loading == total && total > 0){
    _parent.gotoAndPlay(115);
  }
}

I frame 111 står der gotoAndPlay(110);

Men den går aldrig til frame 115 hvor "Enter site" knappen kommer frem.
Hvad gør jeg mon galt? Sikkert fordi man skal preloade i frame 1? Men det vil jeg ikke, jeg vil preloade i frame 110.
Avatar billede _k Nybegynder
13. december 2004 - 13:33 #8
Du har ret i, at man normalt sætter sin preloader på en af de første frames, men hvis din start ikke er ret tung rent kb-mæssigt inden frame 111, så er der ikke noget i vejen med at indsætte den senere.

Prøv at smide nedenstående ind lige over din if-sætning inde i onEnterFrame. Det skulle gerne resultere i et output til dit outputvindu når du tester i Flash. På den måde kan du tjekke hvad prelodscriptet gør, og om det overhovedet bliver kaldt:

trace("Preloaderen siger : " + loading + " ud af " + total + " er hentet");

..hvis du forresten ikke allerede ved det, kan du i Flash trykke ctrl-enter 2 gange for at simulere en download fra nettet. Inde i swf'vinduet kan du i menuen "view->download settings" afkrydse hvilken forbindelse brugeren henter ned med.
Avatar billede mr-baluba Nybegynder
13. december 2004 - 14:23 #9
Ok, puttede din trace linie ind. Men der sker ikke noget i output når jeg tester.
Hvad mon det kan skyldes? Det bliver vel ikke læst af flash.
Koden sidder på et mc (loadbar). Loadbar indeholder en shape og ikke andet.
Loopet fungerer fint tror jeg.
Kan det tænkes at det er fordi at det hele er loadet ind, inden tidslinien når til preloaderen? 110 frames er jo omkring 5 sek.
Avatar billede _k Nybegynder
13. december 2004 - 14:48 #10
Hvis alt er loadet ind inden du når frem til preloaderen, burde i hvert fald en linje blive tracet ud. Så det lader til, at du får stoppet filmen inden du når frem til preloaderen. Har du en stopaction et eller andet sted på main timeline?
Avatar billede mr-baluba Nybegynder
13. december 2004 - 15:05 #11
Tror ikke det er det... "preload baren" bliver vist når den skal tror jeg. Filmen stopper når den når til preload.
Se her: http://www.ullebulle.dk/34.swf

Og der er ingen stop actions inden preloader framen.
Avatar billede mr-baluba Nybegynder
13. december 2004 - 15:14 #12
Så kom der output... ahem, preloadbaren eksisterede kun i én frame :P

"Preloaderen siger : 355598 ud af 355598 er hentet" men den hopper ikke videre til frame 115
Avatar billede _k Nybegynder
13. december 2004 - 15:33 #13
..men der ER en stopaction i samme frame som preloaderen?

Prøv at flytte din trace ind i if-sætningen. Bliver den kaldt, er det så referencen (gotoAndPlay(115)) den er gal med. Bliver den ikke kaldt, så prøv at udskifte "==" med ">="

Driller det stadigvæk, kan du evt. lægge Fla'en op, så jeg kan give den et kig. Måske er det en helt 3. ting den er gal med?
Avatar billede mr-baluba Nybegynder
13. december 2004 - 16:22 #14
Nope, der er slet ingen stop actions. Trace bliver også kaldt når den er i if().
Filen er her: http://www.ullebule.dk/34.fla
Avatar billede mr-baluba Nybegynder
13. december 2004 - 16:26 #15
Avatar billede _k Nybegynder
13. december 2004 - 17:18 #16
Du skal udskifte dit "gotoAndPlay(110)" med "stop()" i frame 111. Så skal du flytte den øverste frame med stop()-actionen til frame 110 og sørge for, at din preloader også kun ligger på denne frame og ikke andre. (hvilket vil sige, at du bare kan flytte den tomme frame på content-laget fra frame 125 til 111)

Prøv forresten også lige tricket med at trykke ctrl-enter 2 gange, så oplever du hvor lang tid der går før dine brugere skal vente inden introen....
Avatar billede mr-baluba Nybegynder
13. december 2004 - 17:31 #17
Hehe ja, den er nok lidt tung den intro :P Må lave en preloader til preloaderen o.0

Det kører nu, fantastisk.

Jeg takker og bukker for den fine og udførlige hjælp :) Smid et svar.
Avatar billede _k Nybegynder
13. december 2004 - 19:43 #18
Ja, introen er lige på grænsen til at skulle ha' en preloader. Og en preloader til preloaderen holder da for vildt ;o)
Avatar billede _k Nybegynder
13. december 2004 - 22:18 #19
Mange tak for point :o)
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