Avatar billede nak-m Nybegynder
17. juni 2002 - 17:45 Der er 23 kommentarer og
1 løsning

streg til dims!

ok jeg har et mc i midten af scenen, et mc der bruger startDrag(); når man holder musen nede og til sidst et lille mc der skal bruges som "streg"! ok her er så hvad jeg gerne vil ha...et array(eller andet der kan bruges)af det lille mc hvor det går i forlængelse af sig selv og danner en streg fra midter-mc'et til mc'et med startDrag();! så skal man kunne trække drag-mc'et rundt omkring på scenen og hele tiden skal mc-stregen følge det!

(ved godt jeg er dårlig til at forklare :þ)!
Avatar billede alexander_j Nybegynder
17. juni 2002 - 20:29 #1
Jeg er ikke sikker på jeg har forstået dig ret, da din forklaring er temmelig forvirrende!

Hvis du har Flash MX, så prøv at lege med følgende kode som ligges på et movieclip:
onClipEvent(enterFrame) {
    _root.createEmptyMovieClip( "linex", 1 );
    with ( _root.linex )    {
        lineStyle( 2, 0x000000, 100 );
        moveTo( 200, 200 );
        lineTo( _root._xmouse, _root._ymouse );
    }
}

Vh. Alexander
Avatar billede nak-m Nybegynder
18. juni 2002 - 06:51 #2
ok du har forstået mig rimelig godt men er det muligt at lave stregen af mc'er der hænger sammen? det skal være et array af et mc der skal bruges eller noget i den stil...
Avatar billede barklund Nybegynder
18. juni 2002 - 09:58 #3
Jeg har til gengæld ikke forstået andet, end det som også alexander fik ud af det...

Skal det IKKE være en lige streg fra centrum og hen mod det punkt, hvor musen er, men derimod en streg, fra der hvor musen var før til der hvor den er nu? Og altså fortsætter den med at lave disse streger i det uendelige kopieret efter musens bevægelse...

Eller er det forkert?
Avatar billede nak-m Nybegynder
18. juni 2002 - 13:57 #4
barklund: nej det er ligesom Alexander siger bare men "stregen" skal være bestå af en masse mc'er der danner en streg fra midten mod musen!
Avatar billede alexander_j Nybegynder
18. juni 2002 - 16:32 #5
Lad mig se! Du har X antal mc'er der skal ligge på linie mellem centrum og musens position!

Havde det været et bestemt antal mc's tror jeg godt jeg kunne hjælpe, men jeg er desværre et særligt godt inde i arrays :-(

Vh. Alexander
Avatar billede nak-m Nybegynder
18. juni 2002 - 16:50 #6
:) måske kan Barklund...(han kan alt)!
Avatar billede barklund Nybegynder
18. juni 2002 - 23:12 #7
Må jeg spørge hvorfor?

Men okay:

onClipEvent(load) {
    if (_name == "clip") {
        _visible = 0;
    } else {
        var s = _name.split("_");
        _x = s[1];
        _y = s[2];
        _rotation = s[3];
    }
}
onClipEvent(enterFrame) {
    if (_name == "clip") {
        var dist_x = _root._xmouse-_x;
        var dist_y = _root._ymouse-_y;
        var dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
        var i, nx, ny, steps = Math.ceil(dist/_width);
        var a = Math.round(180/Math.PI*Math.atan2(dist_y,dist_x));
        for (i = 0; i < steps; i++) {
            nx = _x + (i+0.5)*(dist_x/steps);
            ny = _y + (i+0.5)*(dist_y/steps);
            this.duplicateMovieClip("clip_"+nx+"_"+ny+"_"+a, i+1);
        }
    } else {
        removeMovieClip();
    }
}
Avatar billede barklund Nybegynder
18. juni 2002 - 23:12 #8
Det er skrevet sådan lige ud i luften, men prøv ad....
Avatar billede barklund Nybegynder
18. juni 2002 - 23:13 #9
"removeMovieClip()" skal måske tilføjes en "this." forrest...
Avatar billede nak-m Nybegynder
18. juni 2002 - 23:44 #10
barklund: hvorfor hvad? (jeg prøver lige dit script :þ)!
Avatar billede nak-m Nybegynder
18. juni 2002 - 23:49 #11
hvor skal scriptet sættes? satte det lige på et af stregens mc'er men det duede ikke...og det er da der det er meningen at det skal sidde er det ikke?
Avatar billede nak-m Nybegynder
18. juni 2002 - 23:51 #12
det dur!!! :D YEAH!
(havde glemt at kalde det "clip" :) ... jeg er lidt dum nogle gange/altid)
Avatar billede nak-m Nybegynder
18. juni 2002 - 23:51 #13
kom med svar :)
Avatar billede nak-m Nybegynder
18. juni 2002 - 23:52 #14
(hihi det er perfekt :P)
Avatar billede nak-m Nybegynder
19. juni 2002 - 00:09 #15
(i sidste øjeblik vil du så ikke lige hjælpe mig med hvordan man få de små mc'er til at blive større og større jo tættere de kommer på musens position?)
Avatar billede barklund Nybegynder
21. juni 2002 - 13:18 #16
onClipEvent(load) {
    if (_name == "clip") {
        _visible = 0;
        minsize = 100;
        maxsize = 500;
    } else {
        var s = _name.split("_");
        _x = s[1];
        _y = s[2];
        _rotation = s[3];
        _xscale = _yscale = s[4];
    }
}
onClipEvent(enterFrame) {
    if (_name == "clip") {
        var dist_x = _root._xmouse-_x;
        var dist_y = _root._ymouse-_y;
        var dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
        var i, nx, ny, ns, steps = Math.ceil(dist/_width);
        var a = Math.round(180/Math.PI*Math.atan2(dist_y,dist_x));
        for (i = 0; i < steps; i++) {
            nx = _x + (i+0.5)*(dist_x/steps);
            ny = _y + (i+0.5)*(dist_y/steps);
            ns = minsize + i*(maxsize-minsize);
            this.duplicateMovieClip("clip_"+nx+"_"+ny+"_"+a+"_"+ns, i+1);
        }
    } else {
        this.removeMovieClip();
    }
}
Avatar billede barklund Nybegynder
21. juni 2002 - 13:23 #17
<svar>Kan det bruges?</svar>
Avatar billede nak-m Nybegynder
21. juni 2002 - 14:08 #18
hehe det ser flot ud men for det første bliver den alt for stor :) fylder hele skærmen når man rykker med musen :) ... for det andet skal de små mc'er ikke røre ved hinanden! hvis du synes du har tid...vil du så ikke prøve?

giver dig lige point så snart du kommer med svar :)
Avatar billede nak-m Nybegynder
21. juni 2002 - 14:10 #19
forresten barklund du må sq være rimelig god til matematik hva? imponerende! :P
Avatar billede nak-m Nybegynder
24. juni 2002 - 15:16 #20
baaarkluuuund? :)
Avatar billede barklund Nybegynder
24. juni 2002 - 15:57 #21
onClipEvent(load) {
    if (_name == "clip") {
        _visible = 0;
        old_num = 0;
        sizer = 1/3; //skift HER
    } else {
        var s = _name.split("_");
        _x = s[1];
        _y = s[2];
        _rotation = s[3];
        _xscale = _yscale = 100*(s[4]/_width);
        delete s;
    }
}
onClipEvent(enterFrame) {
    if (_name == "clip") {
        var dist_x = _root._xmouse-_x;
        var dist_y = _root._ymouse-_y;
        var dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
        var i, next_width = _width;
        var next_dist = next_width;
        var nx = _x;
        var ny = _y;
        var a = Math.round(180/Math.PI*Math.atan2(dist_y,dist_x));
        for (i = 0; next_dist < dist; i++) {
            this.duplicateMovieClip("clip_"+nx+"_"+ny+"_"+a+"_"+next_width, i+1);
            next_width += sizer*_width;
            next_dist += next_width;
            ny += next_width*dist_y/dist;
            nx += next_width*dist_x/dist;
        }
        for (j = i; j < old_num; j++) {
            eval("_level"+(j+1)).unloadMovie();
        }
        old_num = i;
    }
}
Avatar billede nak-m Nybegynder
24. juni 2002 - 19:19 #22
ok :) for det første så kom lige med svar!
for det andet kan du så ikke lave sådan at den ikke "taber" de små mc'er rundt omkring når man bevæger den? og sådan at de rører ved hinanden?
Avatar billede barklund Nybegynder
24. juni 2002 - 20:44 #23
<svar value=Selvfølgelig />
Avatar billede barklund Nybegynder
24. juni 2002 - 20:49 #24
Jeg kan simpelthen ikke få de resterende movieclips fjernet... men prøv følgende kode med lidt ekstra til at tvinge dem væk. Den skulle vist også skalere rigtigt:

onClipEvent(load) {
    if (_name == "clip") {
        _visible = 0;
        old_num = 0;
        sizer = 1/3; //skift HER
    } else {
        var s = _name.split("_");
        _x = s[1];
        _y = s[2];
        _rotation = s[3];
        _xscale = _yscale = 100*(s[4]/_width);
        delete s;
    }
}
onClipEvent(enterFrame) {
    if (_name == "clip") {
        var dist_x = _root._xmouse-_x;
        var dist_y = _root._ymouse-_y;
        var dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
        var i, next_width = _width;
        var next_dist = next_width;
        var nx = _x;
        var ny = _y;
        var a = Math.round(180/Math.PI*Math.atan2(dist_y,dist_x));
        for (i = 0; next_dist < dist; i++) {
            this.duplicateMovieClip("clip_"+nx+"_"+ny+"_"+a+"_"+next_width, i+1);
            next_width += sizer*_width;
            next_dist += next_width;
            ny += next_width*Math.sin(Math.atan2(dist_y,dist_x));
            nx += next_width*Math.cos(Math.atan2(dist_y,dist_x));
        }
        for (j = i; j < old_num; j++) {
            eval("_level"+(j+1)).unloadMovie();
        }
        old_num = i;
    }
    if (_visible) this.removeMovieclip();
}
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