Avatar billede rthuls Nybegynder
17. juni 2004 - 00:31 Der er 6 kommentarer og
1 løsning

træk movieclip - lås til akse

Når jeg trækker et movieclip, vil jeg gerne kunne låse det til x- eller y-aksen, ved at holde shift nede (lige som man kan i photoshop).

Det skal fungere sådan, at hvis musen bevæger sig en større distance på y-aksen end x-aksen, kan movieclippet kun bevæges på y-aksen og vice versa.

Indtil videre er jeg nået frem til:

mouseListener = new Object();
mouseListener.onMouseDown = function() {
    if (drag_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
        down = true;
    }
};
mouseListener.onMouseUp = function() {
    down = false;
};
Mouse.addListener(mouseListener);
onMouseMove = function () {
    if (down) {
        if (Key.isDown(Key.SHIFT)) {
            // indsæt smart kode her :o)
        } else {
            drag_mc._x = _root._xmouse;
            drag_mc._y = _root._ymouse;
        }
        updateAfterEvent();
    }
};
Avatar billede pyroman Nybegynder
17. juni 2004 - 00:47 #1
//smarte kode her:
drag_mc._x = _root._xmouse;
drag_mc._y = _root._ymouse;
if(_root._xmouse < xAkse+margin && _root._xmouse > xAkse-margin){
  drag_mc._x = xAkse;
}
if(_root._ymouse < yAkse+margin && _root._ymouse > yAkse-margin){
  drag_mc._y = yAkse;
}
Avatar billede barklund Nybegynder
17. juni 2004 - 12:40 #2
Jeg ville nu gøre det som:

mouseListener.onMouseDown = function() {
    if (drag_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
        down = true;
        start_x = _root._xmouse;
        start_y = _root._ymouse;
    }
}

og

//smart kode
var x_diff = Math.abs(_root._xmouse-start_x);
var y_diff = Math.abs(_root._ymouse-start_y);
if (x_diff > y_diff) {
    drag_mc._x = _root._xmouse;
    drag_mc._y = start_y;
} else {
    drag_mc._x = start_x;
    drag_mc._y = _root._ymouse;
}

Så skulle den snappe rundt mellem akserne - alt afhængig af, hvilken akse den er tættest på :)

// Morten Barklund
Avatar billede pyroman Nybegynder
17. juni 2004 - 14:04 #3
Nok mig der har misforstået det der med at snappe til x- og y-aksen ... jeg troede at et var ligesom et koordinatsystem, hvor man, hvis man var tæt nok på akserne og man havde shift nede, så ville den snappe til dem... men det giver jo faktisk ikke nogen mening :)
Så brug mortens løsning ;)
Avatar billede rthuls Nybegynder
02. juli 2004 - 10:26 #4
Så er jeg her igen. Barklund jeg brugte din løsning, så du må gerne ligge et svar.
Avatar billede barklund Nybegynder
02. juli 2004 - 11:04 #5
Ok tak :)
Avatar billede rthuls Nybegynder
02. juli 2004 - 13:40 #6
Selv tak :o)
Avatar billede barklund Nybegynder
02. juli 2004 - 15:05 #7
Tark for points :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