Avatar billede henrik20 Nybegynder
18. marts 2006 - 16:09 Der er 13 kommentarer og
1 løsning

tegne en streg med actionscript

Hey

kan man, med actionsript, få en streg til at tegne sig selv, eller er det noget med at animere?
Avatar billede pixelpaw Nybegynder
18. marts 2006 - 19:25 #1
Har stykket dette lille script sammen som du måske kan bruge:

this.onLoad = function() {
    lineStartX = 100;
    lineStartY = 100;
    lineTargetX = 500;
    lineTargetY = 300;
    lineSteps = 30;
    lineStepX = (lineTargetX-lineStartX)/lineSteps;
    lineStepY = (lineTargetY-lineStartY)/lineSteps;
    i=0;
    this.lineStyle(1,000000,100);
    this.moveTo(lineStartX,lineStartY);
}
this.onEnterFrame = function() {
    if (i<lineSteps) {
        nextX = lineStartX+lineStepX*i;
        nextY = lineStartY+lineStepY*i;
        this.lineTo(nextX,nextY);
        i++;
    }
}

Du skal bare ændre på parameterne i starten, start og stop punkter osv, så tegner den selv derudaf. Stregen kan også placeres inde i et seperat MovieClip, så skal du bare referere til det i stedet for 'this'.
Avatar billede pixelpaw Nybegynder
18. marts 2006 - 19:26 #2
glemte lige at nævne, at jeg placere koden i _root, men det behøver du jo ikke.
Avatar billede henrik20 Nybegynder
19. marts 2006 - 10:08 #3
Jeg kan ikke få den til at tegne. skriver koden i frame 1 på min stage.

Magler jeg et eller andet?
Avatar billede pixelpaw Nybegynder
19. marts 2006 - 11:00 #4
Har uploaded en fil her: http://www.pote.dk/eksperten/tegnestreg.fla
MX 2004 format.
Avatar billede henrik20 Nybegynder
19. marts 2006 - 11:21 #5
jeg bruger flash 8. måske der er en forskel.

Når jeg kopi-paster koden fra din fla over i en ny tom fla og tester den sker der ikke noget.
Men den du har uploadet virker fint.

Der må være noget jeg misser?
Avatar billede henrik20 Nybegynder
19. marts 2006 - 11:36 #6
kan man ændre hastigheden hvormed dentegner stregen. Hvis jeg eksempelvis sætter linesteps til 300 for at få en mere smooth animering, går der jo meget lang tid med at tegne stregen.

Jeg kan jo bare sætte frameraten op for hele dokumentet, men hvis jeg loader denne swf ind i en andet swf med en lavere framerate, vil den så ikke ændres til den framerate der er i den swf den loades ind i? og dermed tegne stregen langsomt igen?
Avatar billede henrik20 Nybegynder
19. marts 2006 - 11:40 #7
Jeg sætter lige nogle flere point af til dig. den var lidt tynd med 15 point.

Kunne du så lokkes til at vise mig hvordan jeg for stregen til at tegne en firkant?
Avatar billede pixelpaw Nybegynder
19. marts 2006 - 20:15 #8
Jeg får lige installeret Flash 8 og undersøger hvordan det gøres der.
Avatar billede pixelpaw Nybegynder
19. marts 2006 - 20:36 #9
Hvor hurtigt den tegner stregen er en kombination er lineSteps og fps i din movie.

Jeg har installeret Flash 8, og det virker på nøjagtig samme måde. Kopierede bare koden over i første frame i en ny movie og testede det.
Avatar billede pixelpaw Nybegynder
19. marts 2006 - 21:31 #10
Har siddet og leget lidt med at tegne en firkant, og lavede noget kode der kan tegne trekanter, firkanter og objekter med mange flere sider.

coordsX = [100,200,200,100];
coordsY = [100,100,200,200];
steps = 10;
c = 0;
i = steps;
this.lineStyle(1,000000,100);
this.moveTo(coordsX[0],coordsY[0]);
doDraw = true;
xy = getNextSet(c++);
this.onEnterFrame = function() {
    if (doDraw) {
        nextX = xy[0]+xy[2]*i;
        nextY = xy[1]+xy[3]*i;
        this.lineTo(nextX,nextY);
        i++;
        if (i == steps+1) {
            if (c == coordsX.length)
                doDraw = false;
            else
                xy = getNextSet(c++); // return = [x1,y1,stepX,stepY];
        }
    }
}
function getNextSet(s) {
    // return = [x1,y1,stepX,stepY];
    i = 0;
    x1 = coordsX[s];
    y1 = coordsY[s];
    if ((s+1)==coordsX.length) {
        x2 = coordsX[0];
        y2 = coordsY[0];
    } else {
        x2 = coordsX[s+1];
        y2 = coordsY[s+1];
    }
    stepX = (x2-x1)/steps;
    stepY = (y2-y1)/steps;
    return [x1,y1,stepX,stepY];
}

Du skal bare rette coordsX, coordsY og steps, så finder funktionerne ud af resten.
Avatar billede barklund Nybegynder
20. marts 2006 - 08:46 #11
Velkommen tilbage, pixelpaw ;)
Avatar billede pixelpaw Nybegynder
20. marts 2006 - 10:12 #12
tak tak :o) jeg ser du stadig hænger godt ved, godt at se
Avatar billede henrik20 Nybegynder
20. marts 2006 - 19:16 #13
Jeg kan ikke bede om mere. det virker perfekt :)

smider du lige et svar så du kan nogle point.
Avatar billede pixelpaw Nybegynder
20. marts 2006 - 21:28 #14
Glad for at kunne hjælpe :o)
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