Avatar billede jarl-g Nybegynder
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
Avatar billede maqhem Nybegynder
18. juli 2006 - 19:38 #1
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);
}
Avatar billede maqhem Nybegynder
18. juli 2006 - 19:40 #2
Du kunne også nemt erstatte de *100 med *689 hvis der nu tilfældigvis er så mange frames :)
Avatar billede jarl-g Nybegynder
18. juli 2006 - 20:02 #3
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?)
Avatar billede maqhem Nybegynder
18. juli 2006 - 20:39 #4
if(getBytesLoaded() / getBytesTotal() * 100 < 30){
    // procent loaded er stadig under 30!
}
Avatar billede maqhem Nybegynder
18. juli 2006 - 20:41 #5
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 :)
Avatar billede maqhem Nybegynder
18. juli 2006 - 20:44 #6
... 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!
    }
}
Avatar billede jarl-g Nybegynder
18. juli 2006 - 20:47 #7
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?
Avatar billede maqhem Nybegynder
18. juli 2006 - 20:53 #8
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);
    }
}
Avatar billede maqhem Nybegynder
18. juli 2006 - 20:55 #9
... 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%

:)
Avatar billede maqhem Nybegynder
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
Avatar billede jarl-g Nybegynder
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

    }
}
Avatar billede maqhem Nybegynder
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;
}
Avatar billede maqhem Nybegynder
18. juli 2006 - 21:28 #13
var procent:Number = getBytesLoaded() / getBytesTotal() * 4; skal være inden for din onEnterFrame hver gang - min fejl!
Avatar billede maqhem Nybegynder
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;
}
Avatar billede maqhem Nybegynder
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;
}
Avatar billede jarl-g Nybegynder
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 :)
Avatar billede maqhem Nybegynder
18. juli 2006 - 21:33 #17
ovenstående finder selv ud af, hvor mange movieclips du har lavet :)
Mucha nemt!
Avatar billede maqhem Nybegynder
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
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