Avatar billede baitianlong Nybegynder
16. juni 2002 - 18:25 Der er 21 kommentarer og
1 løsning

Cirkel, der bliver fyldt

Hvordan laver man det (er set i flere preloadere)

Skal man lave en radius og duplicate movieclip med lidt rotation, eller er der en anden snedig måde

(script ønskes)...

Altså en preloader, der fylder en cirkel som et "ur"
Avatar billede barklund Nybegynder
16. juni 2002 - 20:05 #1
Jeg har prøvet en gang, men endte op med:

MotionTween + gotoAndStop()

Men det kan nok gøres smartere... har du MX? (så vi kan scripte fills i stedet for at duplicate...)

/Barklund :o)
Avatar billede baitianlong Nybegynder
16. juni 2002 - 20:11 #2
Man ser nu og da effekten, og den er jo fed nok.

Jeg har prøvet at tegne en streg og duplicate den med _rotation+=1, men det kan jeg ikke få til at virke.

Jeg har MX. KAn det ikke laves i 5 ?
Avatar billede baitianlong Nybegynder
16. juni 2002 - 20:16 #3
Jeg fandt en fancy model, men koden fylder flere hundrede linier + jeg fatter ikke en skid af det. Det må kunne laves lettere til mit behov.

http://flashexperiments.insh-allah.com/Circle.Loader2.AS.html
Avatar billede barklund Nybegynder
16. juni 2002 - 20:21 #4
I MX kan du lave noget:

loader = createEmptyMovieClip("loader", 10);
loader._x = 100; //centrum x
loader._y = 100; //centrum y
loader.r = 50; //radius
loader.c = 0xFF0000; //farve

loader.onEnterFrame = function() {
    var this.p = int(100*_root.getBytesLoaded()/_root.getBytesTotal());
    with(createEmptyMovieClip("fill",11)) {
        moveTo(0,0);
        beginFill(this.color);
        lineTo(-this.r,0);
        lineTo(noget,noget,noget,noget);
        lineTo(0,0);
        endFill();
    }
}

Kan ikke lige huske syntaksen for curveTo()...

/Barklund
Avatar billede baitianlong Nybegynder
16. juni 2002 - 20:31 #5
Det ser jo forunderligt ud. Jeg roder med...

onClipEvent(load) {
    if(_name eq("_root.streg")) {
                i = 0
                }
}

onClipEvent(enterFrame) {
    if(i < 361) {
        duplicateMovieClip(_root.streg, "streg"+i, i)
        (eval("_root.streg"+i))._rotation = i
        i += 1
    }
}


Det virker naturligvis ikke endnu, og det har intet med en preloader at gøre. Jeg prøver bare at fylde cirklen. -Kan du ikke hjælpe mig med det, Barklund. (Helst forholdsvis let fordøjelig kode (o; )
Avatar billede baitianlong Nybegynder
16. juni 2002 - 20:32 #6
Altså stik mig et script, der kopierer stregen og lægger 1 til _rotation hver gang - det er da barnemad for dig.
Avatar billede baitianlong Nybegynder
16. juni 2002 - 20:40 #7
Så kan man jo altid lave en preloader ud af den sådan her:

onClipEvent(load) {
startbyte = _root.getBytesLoaded()
}

onClipEvent(enterFrame) {
pausebyte = _root.getBytesTotal() / 360
if(_root.getBytesLoaded() >= startbyte + pausebyte) {
  // duplicate + roter movieclip
  startbyte = _root.getBytesLoaded()
  }
}

Det er da en mulighed. Du skal bare lige lære mig at gøre dette script færdig ((o;
Avatar billede baitianlong Nybegynder
17. juni 2002 - 13:04 #8
Barklund. Hvis du stadig er lidt interesseret....

Jeg er kommet godt på vej.
Se her: http://www.legende.dk/eksperten/cirkel2.html

Men den kører ikke langt nok (Og den bremser op undervejs, som der kommer flere og flere instances) Her er koden:

onClipEvent(load) {
    startbyte = _root.getBytesLoaded();
    i = 0;
}
onClipEvent(enterFrame) {
    pausebyte = _root.getBytesTotal()/360;
    if(_root.getBytesLoaded() >= (pausebyte+startbyte)) {
    duplicateMovieClip(_root.streg, "streg"+i, i);
    setProperty(_root.streg add i, _rotation, i);
    i+=1;
    startbyte=_root.getBytesLoaded();
    }
    _root.procent=Math.round((startbyte/_root.getBytesTotal())*100);
    if(_root.procent == 100) {
        if(_root.fest) {
            _root.play();
            _root.fest = false;
        }
        this.removeMovieClip();
    }
}

Jeg har så stop() og fest=true i frame 1 i hovedlinien

Det "virker", men ikke ordentligt.

-Håber på svar
Mvh
legende.dk
Avatar billede barklund Nybegynder
18. juni 2002 - 10:03 #9
prøv simpelthen blot at ændre din if (_root.getBytesLoaded() ....) til en while (_root.getBytesLoaded()...) - det er ikke testet men burde virke!
Avatar billede baitianlong Nybegynder
18. juni 2002 - 13:37 #10
Det ændrer desværre ikke noget )o; Den når kun ca. en trediedel rundt

Hvad hulen er der galt.
Avatar billede barklund Nybegynder
18. juni 2002 - 22:39 #11
Har du ændret det til en while? Prøv også at flytte pausebyte op i onLoad og lave startbyte til at være (i*pausebyte):

onClipEvent(load) {
    tot = _root.getBytesTotal();
    pausebyte = tot/360;
    startbyte = 0;
    i = 0;
}
onClipEvent(enterFrame) {
    if(_root.getBytesLoaded() >= (pausebyte+startbyte)) {
        duplicateMovieClip(_root.streg, "streg"+i, i);
        _root["streg"+i]._rotation = i;
        startbyte = pausebyte*i++;
    }
    _root.procent=Math.ceil((startbyte/tot)*100);
    if(_root.procent == 100) {
        if(_root.fest) {
            _root.play();
            _root.fest = false;
        }
        this.removeMovieClip();
    }
}

/Barklund
Avatar billede nak-m Nybegynder
19. juni 2002 - 00:20 #12
det virker...men er det bare mig eller bliver den fyldt langsommere og langsommere jo længere den kommer i "processen" ? (det er sikkert bare mig! :) men stadigvæk!)
Avatar billede baitianlong Nybegynder
19. juni 2002 - 00:27 #13
Jeg er skide glad for at du gider hjælpe, men jeg er nok på vildspor...
Det er ikke sådan her man laver sådan en cirkel - preloader !

Med det nye script kører den ganske vist hele vejen rundt, men således her:

-Den er ligeglad med hvor meget der er læst ind (den kører bare færdig i sit eget tempo)

-Når antallet af instances kommer over 40-50 stykker (Pentium 3, 450 Mhz, 256 MB ram) synes den det er hårdt... -Fra 70-100 tager det 40 år.

-Når den er færdig skriver den pludselig 50 i _root.procent, og starter IKKE filmen.

Hvordan helvede programmerer man en cirkel-preloader, Barklund. -Det er da lige dig ?! Den skal ikke laves med duplicateMC, måske kan vi afdække en cirkel med noget andet Property_rotation halløj.

Jeg uploader lige den seneste på samme adresse....

http://www.legende.dk/eksperten/cirkel2.html
Avatar billede barklund Nybegynder
20. juni 2002 - 16:28 #14
tjaa... Problemet i den nuværende er jo nok, at filstørrelsen ændrer sig efterhånden som indholdet dublikeres...

Jeg vil foreslå MX, der er skabt til formålet - ellers ved jeg ikke, hvordan du skal gøre...

Må jeg foreslå en motiontween på 100 frames og gotoAndStop()...
Avatar billede baitianlong Nybegynder
21. juni 2002 - 17:14 #15
Hvad sørensen, Barklund, Når du begynder at tweene i stedet for at scripte er der noget galt... (o;

Men MX er jeg da klar på, jeg er dog lidt i tvivl om din MX kode

loader = createEmptyMovieClip("loader", 10);
loader._x = 100; //centrum x
loader._y = 100; //centrum y
loader.r = 50; //radius
loader.c = 0xFF0000; //farve

loader.onEnterFrame = function() {
    var this.p = int(100*_root.getBytesLoaded()/_root.getBytesTotal());
    with(createEmptyMovieClip("fill",11)) {
        moveTo(0,0);
        beginFill(this.color);
        lineTo(-this.r,0);
        lineTo(noget,noget,noget,noget);
        lineTo(0,0);
        endFill();
    }
}

noget, noget, noget, noget. ?? + Jeg kan se du opretter et movieclip, og gør noget ved det on enter frame, men scriptet skal ikke stå på et mc som i flash 5, vel. Skal scriptet ligge i en stop-frame først, eller ?
Avatar billede barklund Nybegynder
21. juni 2002 - 20:49 #16
Dette kan bare ligge i den første frame i den film med en stop til sidst...

Linien med "noget,noget" er en lille hmm... Jeg skal lige tænke lidt over det dér med vinkler og så'n...

Argumenterne er:

curveTo(x1,y1,x2,y2);

(lineTo() er en fejl i denne linie)

Men jeg vender tilbage, når jeg har tænkt...
Avatar billede baitianlong Nybegynder
25. juni 2002 - 19:05 #17
Hey Barklund, har du snart tænkt (o; Jeg sidder jo næsten og tweeener her !!!

mvh legende
Avatar billede nak-m Nybegynder
26. juni 2002 - 12:28 #18
hehe jeg har da også lavet en :)

let version(der ikke over belaster f.eks. min processor):
http://www.nakalay.subnet.dk/preloader-let.swf

original version(der er overbelastende for min processor):
http://www.nakalay.subnet.dk/preloader.swf

:)...men det er jo ikke preloadere! ...så jeg ved ikke helt hvorfor jeg har kaldt dem det!
Avatar billede baitianlong Nybegynder
26. juni 2002 - 19:13 #19
Avatar billede nak-m Nybegynder
27. juni 2002 - 14:34 #20
pis man kan ikke se mine .swf-filer :( havde også prøvet at lægge dem op på h4f.dk men der sagde den at de fyldte 0kb :(

prøver lige at finde et andet sted til dem :)
Avatar billede nak-m Nybegynder
28. juni 2002 - 14:44 #22
men de skal vist kopieres op i address baren :)
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