Avatar billede sorteplov Nybegynder
30. august 2003 - 20:20 Der er 13 kommentarer og
2 løsninger

Preloader på flere MC's i samme "over" mc

Hej

Jeg har et mc på min stage som jeg har kaldt:

mc_container

Inden i det mc har jeg to andre "tomme" mc som hedder hhv. test og test2.

Via nogle knapper bliver der loadet indhold ind i disse to mc fx. sådan her:

on (release){
    loadMovie("subswf/extra.swf", _root.testholder.test);
}

Ganske simpelt!

Men nu vil jeg gerne have en preloader på disse to mc (test og test2). Det har jeg skrevet som flg.

onClipEvent(enterFrame){
    var hentet = this.getBytesLoaded();
    var total = this.getBytesTotal();
    var totall = Math.round((hentet/total)*100);
    _root.skriv.text = totall;
        if(hentet == total) {
            _root.skriv.text = "";
            }
    }

Det virker bare ikke.

Det virker kun hvis der kun er et mc inden i mc_container (fx. test).

Hvordan får jeg denne preloader-kode til at virke med flere mc'er inden i mc_container.

Download eksempel på:

http://www.sorteplov.dk/test.fla
Avatar billede barklund Nybegynder
30. august 2003 - 20:51 #1
Hvis du fjerner de to enterFrames og tilføjer dette til "testholder":

onClipEvent(enterFrame){
    var hentet = this.test.getBytesLoaded()+this.test2.getBytesLoaded();
    var total = this.test.getBytesTotal()+this.test2.getBytesTotal();
    var totall = Math.round((hentet/total)*100);
    _root.skriv.text = totall;
    if(hentet == total) {
        _root.skriv.text = "";
    }
}
Avatar billede sorteplov Nybegynder
30. august 2003 - 21:05 #2
OK - barklund, men .... :-)

...jeg har lige et par spm.

1
Ved du hvorfor det ikke virker med 2 mc's inden i tesholder?

2
Det virker ikke helt optimalt. Når jeg klikker på knapperne starter tælleren ganske kort ved enten 133 for så derefter at gå tilbage og tælle fra nul eller så starter den ved 100 og hopper så til nul?
Prøv at se på

www.sorteplov.dk/test.html
Avatar billede barklund Nybegynder
30. august 2003 - 21:10 #3
1:

Du har 2 scripts der battler med hinanden om at bestemme, hvad der står i tekstfeltet. De synkroniserer jo ikke, men overskriver det, som det anden har beregnet.

2:

onClipEvent(enterFrame){
    var hentet = this.test.getBytesLoaded()+this.test2.getBytesLoaded();
    var total = this.test.getBytesTotal()+this.test2.getBytesTotal();
    var totall = Math.round((hentet/total)*100);
    _root.skriv.text = totall;
    if(hentet == total || total < 10) {
        _root.skriv.text = "";
    }
}
Avatar billede sorteplov Nybegynder
30. august 2003 - 21:20 #4
OK, men

når du skriver

if(hentet == total || total < 10) {
        _root.skriv.text = "";
    }

Hvorfor skriver du lige 10 ? Er det fordi flash ikke når at beregne hvor mange getBytesTotal der er. Kan man ikke skrive det på en anden måde?

Jeg tænkte at noget med undefined eller så'en ;-)
Avatar billede sorteplov Nybegynder
30. august 2003 - 21:23 #5
Det virker stadig heller ikke helt efter hensigten.

Prøv først at trykke på den venstre knap og når indholdet er loadet - prøv så at trykke på knappen til venstre - den starter stadig ved lidt over 100 :-)

www.sorteplov.dk/test.html
Avatar billede barklund Nybegynder
30. august 2003 - 21:24 #6
Det skyldes, at et tomt movieclip fylder 4 bytes - 2 fylder altså 8... så "<= 8" ville også virke ;)
Avatar billede barklund Nybegynder
30. august 2003 - 21:26 #7
Det virker som forventet her. Den starter på 0 og tæller til 100 og forsvinder. Så trykker jeg på den anden og den viser 100 et kort øjeblik for derefter at fortsætte fra ca. 30 op til 100. men skriv fx:

onClipEvent(enterFrame){
    var hentet = this.test.getBytesLoaded()+this.test2.getBytesLoaded();
    var total = this.test.getBytesTotal()+this.test2.getBytesTotal();
    var totall = Math.round((hentet/total)*100);
    _root.skriv.text = totall;
    if(hentet == total || totall >= 100) {
        _root.skriv.text = "";
    }
}
Avatar billede sorteplov Nybegynder
30. august 2003 - 21:30 #8
Ok :-)

Men hvorfor starter den først ved 30?

Mvh

SpørgeJørgen
Avatar billede barklund Nybegynder
30. august 2003 - 21:40 #9
Den tæller jo op, hvor meget der er loadet af begge clip i forhold til meget begge clip fylder til sammen. Og ud af den samlede størrelse udgør det første clip altså 30%
Avatar billede sorteplov Nybegynder
30. august 2003 - 21:52 #10
Ok - hmm - så virker den ikke helt efter hensigten.

Jeg tror jeg vender tilbage til den første model med og så bare lave
to forskellige tekstfelter dynamisk á la:

onClipEvent(data){
_root.createEmptyMovieClip("preloader1", 100);
preloader1.createTextField("statusText", 100, 0, 0, 0, 0);
with (preloader1.statusText) {
    type = "dynamic";
    autosize = true;
    _x = 200;
    _y = 150;
}

}

onClipEvent(enterFrame){
    var hentet = this.getBytesLoaded();
    var total = this.getBytesTotal();
    var totall = Math.round((hentet/total)*100);
    _root.preloader1.statusText.text = totall;
        if(hentet == total) {
            preloader1.statusText.text = "";
_root.removemovieClip(_root.preloader1);

            }
    }
Avatar billede barklund Nybegynder
30. august 2003 - 22:27 #11
Hvad skal den da gøre? Vise status for de movieclips, som man har sat i gang med at loade, og som endnu ikke er færdigloadede? Og laver du det i flash mx?
Avatar billede sorteplov Nybegynder
17. september 2003 - 00:10 #12
barklund - jeg lukker dette spm. Jeg fik det aldrig til at virke efter hensigten på denne måde.

Tak for indsatsen.

Jeg har fået løst problemet - sådan da - men se evt. http://www.eksperten.dk/spm/402015 som jeg lige har oprettet....det kan være du kan hjælpe.

Smid et svar på dette spm. så deler vi pointsne - OK ?
Avatar billede sorteplov Nybegynder
17. september 2003 - 00:10 #13
Delesvar....
Avatar billede barklund Nybegynder
17. september 2003 - 00:12 #14
fjong!
Avatar billede barklund Nybegynder
17. september 2003 - 00:58 #15
Tark for points ;)
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