Avatar billede nanna31 Praktikant
24. april 2004 - 23:09 Der er 12 kommentarer og
3 løsninger

Flash og loading

Jeg har set følgende lille script i en source:

ifFrameLoaded (5) {gotoAndPlay(3);}

Men skal man ikke været nået til eksempelvis frame 5 i tidslinien, før at frame 5 kan være loaded?

Åbenbart ikke, hvis scriptet virker, men hvordan loader Flash så igrunden data?
Avatar billede mat Nybegynder
24. april 2004 - 23:19 #1
Normalt bruger man getBytesLoaded() og holder det op imod getBytesTotal når man laver preloaders i flash.

Men jo, jeg ville mene at frame 5 skal være loaded hvis man bruger ifFrameLoaded() :)

mvh mat
Avatar billede barklund Nybegynder
24. april 2004 - 23:21 #2
Du skal heller ikke bruge ifFrameLoaded generelt - brug _framesloaded istedet for :)
Avatar billede mobius6 Juniormester
24. april 2004 - 23:30 #3
flash loader så at sige fra toppen og ned...
altså loades indholdet fra frame 1 i din film først
afhængig af dine export settings kan du kontrollere om indholdet skal loades
fra øverste lag ned eller nederste lag op (er ikke helt ligemeget hvis du har en tung 1'ste frame) (du kan skifte load op/ned når du exporterer din swf)

hvis du bruger den metode som du gør (ifFrame..)(hvilket jeg heller ikke vil tilråde, men hvis det virker for så gør det) skal filmen ikke være afspillet i frame 5 for at gå til frame 3 (hvis jeg forstår dit spørgsmål rigtigt)
din kode spørger (fra frame 1) om frame 5 er INDLÆST, når den er vil den gå til frame 3.
Avatar billede mobius6 Juniormester
24. april 2004 - 23:32 #4
sorry den kluntede forklaring, min finger sad fast i stavepladen :-/
Avatar billede nanna31 Praktikant
25. april 2004 - 10:13 #5
ok ok - jeg ta'r det lige helt forfra, men piece by piece denne gang -

først:
kan frame 5 godt være loaded, inden afspilleren er nået dertil?

For jeg har hele tiden gået i den tro, at en frame først blev loaded, idet afspilleren afspillede den!
Avatar billede barklund Nybegynder
25. april 2004 - 11:12 #6
Hvis det var tilfældet, så var _currentframe og _framesloaded jo det samme - og det er det ikke. Og hvis det var tilfældet, hvordan kan størstedelen af alle flash produktionerne så have en preloader, hvis man slet ikke kan preloade?

Flash afspilleren er lavet, så den loader så hrutigt den kan, og spiller så hurtigt den kan. Så hvis den med det samme får loaded de første 100 frames, fordi de er næsten tomme, så kan den bare afspille fra frame 1 til 100, men hvis frame 101 er stor, så kan det være, at den bliver nød ttil at pause mens den loader frame 101 færdig. Dog vil du på en hurtig forbindelse vente kortere tid en på en langsom.

// Morten Barklund
Avatar billede nanna31 Praktikant
25. april 2004 - 11:27 #7
Lige netop en opskrift på en preloader har givet mig den opfattelse (tro), jeg beskriver ovenfor. For der var preloaderen bare de første 50 frames i _root, i hvilke man så indsatte alle de tunge objekter, som så skulle blive loaded, efterhånden som afspilleren passerede dem. Derfor har jeg hele tiden troet, at afspilleren i princippet SKAL passere en frame indeholdende et givent objekt Q, for at Q kan loades ind i ram'en.

Men iflg dig Barklund kan et objekt altså godt loades, uden at afspilleren nogensinde har "mødt" objektet i en frame, den har passeret?  - forstår du præcist, hvad jeg mener?
Avatar billede barklund Nybegynder
25. april 2004 - 11:35 #8
Ja, selvfølgelig gør Flash sådan, altså preloader så meget den kan inden den kommer til en frame. Den kan netop IKKE afspille en frame, hvis alt indholdet ikke er loaded. Ovenstående metode til at lave en "fake" preloader er en alvorligt skidt metode! Det er IKKE sådan, preloadere laves.

Brug istedet getBytesLoaded()/getBytesTotal(). getBytesLoaded() vil du kunne se blive ved med at stige fra flashen startes indtil den når op på getBytesTotal() - og det selvom din film står stille i frame 1.

Du har grumt misforstået konceptet om streaming her, må jeg nok indrømme - håber du har fået styr på det nu. :)
Avatar billede nanna31 Praktikant
25. april 2004 - 12:22 #9
Jamen det hjælper altsamment :-)

Lige en sidste ting så...hvorfra kender Flash getBytesTotal()  ?? - hvad måler den på her?
Avatar billede barklund Nybegynder
25. april 2004 - 12:25 #10
Filens samlede størrelse - det ligger som en del af header informationen i filen selv, altså nogle af de første bytes i filen angiver, hvor mange bytes filen fylder i alt lige som der er bytes der angiver flash player version, størrelse, baggrundsfarve, framerate med videre...
Avatar billede nanna31 Praktikant
25. april 2004 - 12:36 #11
filens samlede størrelse? - men regnes eventuelle ubrugte objekter fra biblioteket med der så?
Avatar billede barklund Nybegynder
25. april 2004 - 12:44 #12
Alt hvad der ligger i din SWF regnes med - men ubrugte library items bliver ikke overført fra din FLA til din SWF, så derfor regnes de ikke med. Det er jo ikke FLA'ens samlede størrelse, der regnes med her.
Avatar billede nanna31 Praktikant
25. april 2004 - 13:14 #13
Nåh nej, det er jo klart nok. Ok tak for hjælpen - nu er brikkerne ved at falde på plads :-)
Avatar billede barklund Nybegynder
25. april 2004 - 13:59 #14
Helt i orden :)

Tak for points!
Avatar billede mobius6 Juniormester
25. april 2004 - 14:35 #15
selv tak :)
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 dag 21:00 Libre Office Impress Af Frank i Andre styresystemer
I dag 11:47 VB script Af Jenshentze i Word
I dag 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