18. juli 2006 - 18:35
Der er
17 kommentarer og 1 løsning
PreLoader med procent
Hvordan går man sådan, så hvis eksempelvis 30 procent af filen er loadet, går den til en frame? 60 point Mvh. JPAG
Annonceindlæg fra Computerworld it-jobbank
Hvis du nu lavede et mc i stedet, og fik dét til at gå til det loadede antal procent vil din kode på root'en se sådan hér ud: onEnterFrame = function(){ dit_mc.gotoAndStop(getBytesLoaded() / getBytesTotal() * 100); }
Du kunne også nemt erstatte de *100 med *689 hvis der nu tilfældigvis er så mange frames :)
Jeg vil meget nødigt have det med frames. Kan man ikke finde hvor mange procent der er loadet, hvis det kunnne hedde "if (percentLoaded > 30%" eller sådan noget (Det ved jeg er helt forkert, men hvis du forstår?)
if(getBytesLoaded() / getBytesTotal() * 100 < 30){ // procent loaded er stadig under 30! }
getBytesLoaded() - antallet af loaded bytes getBytesTotal() - det totale antal bytes getBytesLoaded() : getBytesTotal() er blot lidt matematisk viden, der beviser, hvor meget tæller udgør i forhold til nævner. Er de lige store, giver det 1! Når der så ganges med 100 får man det i procent :)
... men hvis du ikke har lavet et frameloop skal det være: onEnterFrame = function(){ if(getBytesLoaded() / getBytesTotal() * 100 < 30){ // procent loaded er stadig under 30! } }
Okay, så jeg kan godt sige onEnterFrame = function(){ if(getBytesLoaded() / getBytesTotal() * 100 < 15){ gotoAndPlay(15) } } onEnterFrame = function(){ if(getBytesLoaded() / getBytesTotal() * 100 < 30){ gotoAndPlay(30) } } eksempelvis?
Hmm... jeg vil foreslå dig, at du stopper det lidt mere sammen: var procent:Number = getBytesLoaded() / getBytesTotal() * 100; onEnterFrame = fucntion()Void { if(procent < 15) { gotoAndStop(15); }else if(procent < 30) { gotoAndStop(30); } }
... men skal du springe med 15 som interval hele tiden, kan du jo splitte det op i 5'ere i stedet for 1'ere: var procent:Number = getBytesLoaded() / getBytesTotal() * 20; onEnterFrame = fucntion()Void { if(procent < 3) { gotoAndStop(15); }else if(procent < 6) { gotoAndStop(30); } } Så er hver procent = 1 altså 5% :)
18. juli 2006 - 21:08
#10
"... men skal du springe med 15 som interval hele tiden" - ... men skal du springe med 5, 10, 15 (etc.) som interval hele tiden
18. juli 2006 - 21:15
#11
Men nu er min case, at jeg vil vise forskellige ting efter en procentdel (fjerde-dele) er loadet. Kan jeg så: var procent:Number = getBytesLoaded() / getBytesTotal() * 25; onEnterFrame = fucntion()Void { if(procent < 5) { this.mit_movieclip1._visible = true this.mit_movieclip2._visible = false this.mit_movieclip3._visible = false this.mit_movieclip4._visible = false }else if(procent < 10) { this.mit_movieclip1._visible = true this.mit_movieclip2._visible = true this.mit_movieclip3._visible = false this.mit_movieclip4._visible = false }else if(procent < 15) { this.mit_movieclip1._visible = true this.mit_movieclip2._visible = true this.mit_movieclip3._visible = true this.mit_movieclip4._visible = false }else if(procent < 20) { this.mit_movieclip1._visible = true this.mit_movieclip2._visible = true this.mit_movieclip3._visible = true this.mit_movieclip4._visible = true } }
18. juli 2006 - 21:27
#12
var procent:Number = getBytesLoaded() / getBytesTotal() * 4; onEnterFrame = fucntion():Void { if(procent < 1) { mit_movieclip1._visible = true; mit_movieclip2._visible = false; mit_movieclip3._visible = false; mit_movieclip4._visible = false; }else if(procent < 2) { mit_movieclip1._visible = true; mit_movieclip2._visible = true; mit_movieclip3._visible = false; mit_movieclip4._visible = false; }else if(procent < 3) { mit_movieclip1._visible = true; mit_movieclip2._visible = true; mit_movieclip3._visible = true; mit_movieclip4._visible = false; }else if(procent < 4) { mit_movieclip1._visible = true; mit_movieclip2._visible = true; mit_movieclip3._visible = true; mit_movieclip4._visible = true; } } ... men da det er så enkelt, kan det gøres så simpelt som dette: mit_movieclip1._visible = false; mit_movieclip2._visible = false; mit_movieclip3._visible = false; mit_movieclip4._visible = false; onEnterFrame = function(){ var procent:Number = getBytesLoaded() / getBytesTotal() * 4; this['mit_movieclip' + procent]._visible = true; }
18. juli 2006 - 21:28
#13
var procent:Number = getBytesLoaded() / getBytesTotal() * 4; skal være inden for din onEnterFrame hver gang - min fejl!
18. juli 2006 - 21:30
#14
Det kan endda gøres simplere endnu: for(i = 1; i < 5; i++){ this['mit_movieclip1' + i]._visible = false; } onEnterFrame = function(){ var procent:Number = getBytesLoaded() / getBytesTotal() * 4; this['mit_movieclip' + procent]._visible = true; }
18. juli 2006 - 21:32
#15
... hvis du nu pludselig finder ud af, at der skal være flere movieclips, så brug følgende: var num:Number = 0; while(this['mit_movieclip' + (num + 1)]){ num++; } for(i = 1; i <= num; i++){ this['mit_movieclip1' + i]._visible = false; } onEnterFrame = function(){ var procent:Number = getBytesLoaded() / getBytesTotal() * num; this['mit_movieclip' + procent]._visible = true; }
18. juli 2006 - 21:33
#16
Jeg har bogmærket dette spørgsmål, da det er utroligt lærefuldt! Du fortjener 100 point EKSTRA :)
18. juli 2006 - 21:33
#17
ovenstående finder selv ud af, hvor mange movieclips du har lavet :) Mucha nemt!
18. juli 2006 - 21:35
#18
Jeg synes, du skal beholde de ekstra 100 point selv... Jeg bliver så glad, hver gang, jeg tilfredsstiller nogen! Det er så fedt! ... og det er fint for mig ;D
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.