Avatar billede barf Nybegynder
28. januar 2005 - 08:58 Der er 3 kommentarer

drag og snap til punkt

Jeg har 9 knapper (movieclips) der lægger i et 3x3 mønster. Hver knap har følgende action tildelt:

this.onPress = function() {
    knap = this;
    mouseIsDown = true;
};
this.onRelease = function() {   
    mouseIsDown = false;
};


Derudover har jeg et listener object:

var listener = [];
listener.onMouseMove = function() {
    if (mouseIsDown) {
        knap._x = Math.round(_root._xmouse);
        knap._y = Math.round(_root._ymouse);
        updateAfterEvent();
    }
};
Mouse.addListener(listener);



Jeg vil gerne at når man slipper knappen (mouseup), så snapper den til et af de 9 felter i 3x3 mønsteret.

Hvis der i forvejen lægger en knap, skal denne bytte plads med knappen der lige er blevet trukket derhen.
Avatar billede paal_dk Nybegynder
29. januar 2005 - 01:10 #1
Jeg ville lave det med en normal knap i stedet for en listener, ingen grund til at gøre det mere kompliceret end højst nødvendigt:

ON RELEASE:
knap = den knap jeg flytter;
nyPosition = nærmeste felt;
if ( nyPosition er optaget ) {
  knap2 = knap på nyPosition;
  læg knap2 på gammelPosition;
}
læg knap på nyPosition;

Mvh,
Pål
Avatar billede barf Nybegynder
29. januar 2005 - 15:06 #2
Ja ok, men hvordan tester jeg lige hvilken position der er den nærmeste?
Avatar billede paal_dk Nybegynder
31. januar 2005 - 13:40 #3
Brug formelen til at beregne afstanden mellem to punkter i et 2D-koordinatsystem:

distance = sqrt( (x1-x2)^2 + (y1-y2)^2 )

x1 og x2 er x-koordinaterne på de to punkter du måler afstanden i mellem, ligesom y1 og y2 er y-koordinaterne. Løb alle afstandene igennem og find den korteste.
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