Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 12:45 Der er 19 kommentarer og
1 løsning

damn preloader :-)

Jeg har nu i lang tid prøvet at lave en preloader i flash 5.
I den movie der skal loades har jeg sat et billede ind i hver frames, ikke så mange igen, bare for at kunne se effekten. Men synes sq\' ikke ritigt det gør nogen forskel med en preloader. Måske er det fordi jeg gør det forkert. Jeg gør sådan her:
ifFrameLoaded (\"Scene 1\", 6) {
    gotoAndPlay (\"Scene 1\", 1);
}

Avatar billede lingoman Nybegynder
31. juli 2001 - 12:56 #1
(\"Scene 1\", 6) skal nok være  frame Label ELLER frame nummer
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 12:58 #2
6 er da den sidste frame..? scene 1 er bare for at vise hvilken scene den ligger i....
Avatar billede lingoman Nybegynder
31. juli 2001 - 12:59 #3
I Flash 5 anbefales at man ikke længere gør brug af ifFrameLoaded, men i stedet bruger _framesLoaded og _totalframes.

Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:01 #4
aner ik hvordan man bruger sådn en....?
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:03 #5
Prøv denne kode

if (_totalFrames > 0 &&  _framesloaded =_totalFrames) {
    gotoAndPlay(1);
} else {
    gotoAndPlay(_currentframe - 1);
}

mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:08 #6
du må meget gerne give en forklaring, for jeg kan ik helt gennemskue det. Ved ik helt hvilke ting jeg skal ændre
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:17 #7
Du behøver kun at erstatte din

ifFrameLoaded (\"Scene 1\", 6) {
                        gotoAndPlay (\"Scene 1\", 1);
                    }

med denne Action

if (_totalFrames > 0 &&  _framesloaded =_totalFrames) {
      gotoAndPlay(1);
} else {
      gotoAndPlay(_currentframe - 1);
}

Andet behøver du ikke gøre.

så tjekker Flash selv hvormange frames der findes i filmen og putter det ind i property  _totalFrames.
Flash holder selv styr på hvor mange frames der er loaded i property _framesloaded.

Hvis din film har nogle frames vil scriptet altså tjekke om de alle er loaded og Play(1).
Ellers hvis de endnu ikke er loaded looper den > gotoAndPlay(_currentFrame - 1)

Håber at det er til at forstå!
mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:21 #8
nååå, okey, på den måde...

...når jeg så prøver at afspille filmen går det vildt langsomt første gang jeg køre igennem, og når den looper går det lige pludselig hurtigt som det skal. Tyder noget ikke på at den ikke er loadet så ?
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:29 #9
Som scriptet er for oven spiller filmen først igennem når alle frames er loaded( den venter indtil _framesloaded =_totalFrames )

Ups! har lige opdaget en fejl!

rettelse ( ekstra lighedstegn)

if (_totalFrames > 0 &&  _framesloaded ==_totalFrames) {
      gotoAndPlay(1);
} else {
      gotoAndPlay(_currentframe - 1);
}


Men ja, når den har kørt den første gang er alle frames jo loaded... Derfor vil den loope uden at vente længere hvis du har sat filmem til at loope.

mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:32 #10
hømn, det ser ikke til at det virke efter min hensigt. Kan du sige hvad en preloader gør godt for?
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:36 #11
Hvad er din hensigt da?
Jeg ville jo blot vise hvordan _framesLoaded og _totalframes bruger til at udføre det som din oprindlige kode skulle. Var det ikke din hensigt med kommentaren \".....aner ik hvordan man bruger sådn en....?

mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:37 #12
du får pointene. Gider ik mere *snøft*.
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:39 #13
En preloader bruges som regel til at sørge for at alle de nødvendige media er loaded før man fortsætter med afspilningen.
På denne måde kan man undgå at animationer, lyde etc begynder at hakke under afspilningen.

mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:42 #14
Det gør mine ting alligevel :(. Der er faktisk ingen forskel. Men hvad f. Gider aldrig mere at lave flash *G*.... ja....slut :-))
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:42 #15
Hvad er det du ville have preloaderen til at gøre ???  der ingen andre end du som kan sige det !
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:47 #16
For søren da, gizmo! Send din fla fil til mig (zip den først)  geo@lingoman.dk 
Jeg vil se hvad der går galt og rette det om muligt
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 13:49 #17
lingaman >> takker. Jeg sender den nok lige når jeg er færdig med noget. Skal ikke bruge den lige her, men jeg sender noget på et tidspunkt....takker takker
Avatar billede lingoman Nybegynder
31. juli 2001 - 13:50 #18
>lingoman< OK ser frem til at høre fra dig igen.
Avatar billede lingoman Nybegynder
31. juli 2001 - 17:00 #19
>>email fra gizmo-gizmo 

    \"lige et par spørgsmål mere om preloadere.
    Jeg har set at man kan fange med bytes med: getBytesTotal();
    Men så er mit spm. hvordan får man skrevet det ud på skærmen.
    Jeg er vant til php hvor man jo bare kan bruge print, men hvordan kan det lad sig gøre i flash?\"


Der er jo mange måder at vise informationen på, men her er et par eksempler på de mest brugte:

Man kan oprette et Dynamisk Tekst felt som viser getBytesTotal() og getBytesLoaded()
Hvis vi laver den som et MC kunne vi jo også genbruge preloaderen i andre film så det er hvad jeg gør her:

Vi henter først info\'en og standser mainTimeline indtil alt er loaded

onClipEvent(load) {
    movieSize= _root.getBytesTotal();
    _root.stop();
}

onClipEvent( enterFrame)  {
    sizeLoaded =_root.getBytesLoaded();

    //vis resultatet i tekst feltet som har variablen \'loadText\' tilknyttet
  myTextPhrase = int( sizeLoaded / 1024 ) + \"kb\" + int ( movieSize / 1024 ) + \"kb\";
  loadText = myTextPhrase;
 
  //hvis alt er loaded så fortsæt til frame \"start\"

  if (sizeLoaded >= movieSize )  {
      _root.gotoAndPlay(\"start\")
  }
}
 
Man ser også ofte en \'progress bar\' MC som skaleres gradvis.  :

bytesTotal = _root.getBytesTotal();
bytesLoaded = _root.getBytesLoaded();
progressBarScale = int(100.0 * bytesLoaded/bytesTotal);    // i %
this._xscale = progressBarScale


Håber det kan bruges!

mvh geo
Avatar billede gizmo-gizmo Nybegynder
31. juli 2001 - 17:02 #20
Tusind tak Geo. Jeg kigger på det!!
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