Avatar billede moefelt Nybegynder
16. maj 2003 - 17:50 Der er 12 kommentarer og
1 løsning

snap to pointer

Hey y'all

Jeg sidder og arbejder på en lille menu men kan ikke få det til at spille helt. Jeg er ikke god til actionscript og den menu jeg skal lave kommer ikke til at fungere med de almindelige OnMouse commands.

Jeg mangler et script der får mit objekt til at "snappe" til min mousepointer, når musen er inden for f.eks. 20 pixels af objektet.
Avatar billede barklund Nybegynder
16. maj 2003 - 18:04 #1
clip.onMouseMove = function() {
    if (Math.abs(Math.min(this._xmouse,this._ymouse)) < 20) {
        this._x = _parent._xmouse;
        this._y = _parent._ymouse;
    }
}
Avatar billede moefelt Nybegynder
19. maj 2003 - 07:37 #2
hm hvordan skal det sættes ind mv.
Avatar billede barklund Nybegynder
19. maj 2003 - 11:38 #3
På clippet, der skal snappe til musen. Det skal så være et movieclip...
Avatar billede moefelt Nybegynder
19. maj 2003 - 14:55 #4
det funger ikke:

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 1: Statement must appear within on/onClipEvent handler
    clip.onMouseMove = function() {
Avatar billede barklund Nybegynder
19. maj 2003 - 15:33 #5
dit movieclip hedder "clip" og koden placeres i framen eller også placerer du:

onClipEvent(mouseMove) {
    if (Math.abs(Math.min(this._xmouse,this._ymouse)) < 20) {
        this._x = _parent._xmouse;
        this._y = _parent._ymouse;
    }
}

på clippet

/Barklund
Avatar billede moefelt Nybegynder
19. maj 2003 - 18:59 #6
ok - nu funger det. Et lille tillægsspørgsmål.

Hvordan laver jeg så den slipper igen hvis man bevæger sig ud over 20 pixels igen. Har set det et sted hvor den havde en slags elastik-effekt. Hvordan fungerer dette??? Ekstra point hvis det er nødvendigt uddeles gerne.

//Moefelt
Avatar billede barklund Nybegynder
19. maj 2003 - 19:31 #7
Jeg er ikke helt med...

Hvis man bevæger musen indenfor 20 pixel i en radius rundt om dens start-position, så klistrer til musen, men hvis man flytter den ud igen, så bouncer den tilbage til starten?
Avatar billede moefelt Nybegynder
19. maj 2003 - 19:39 #8
jeg kan prøve at beskrive det lidt bedre. Hvis man nu angiver et fix punkt for objektet (x,y), og lader objektet klistre til dette. Hvis man så bevæger sig inden for 20 px af objektet trækker pointeren stille objektet til sig. Hvis man igen bevæger sig uden for de 20 px bevæger objektet sig tilbage til sit fixpunkt.
Avatar billede barklund Nybegynder
19. maj 2003 - 20:05 #9
Det var jo det jeg sagde :)

Men så:

onClipEvent(load) {
    this.orig_x = this._x;
    this.orig_y = this._y;
}
onClipEvent(mouseMove) {
    this.over = Math.max(Math.abs(_parent._xmouse-this.orig_x),Math.abs(_parent._ymouse-this.orig_y)) < 100;
    if (this.over) {
        this._x = _parent._xmouse;
        this._y = _parent._ymouse;
        updateAfterEvent();
    }
}
onClipEvent(enterFrame) {
    if (!this.over) {
        this._x += this.dx = 0.8*this.dx+(this.orig_x - this._x)/3;
        this._y += this.dy = 0.8*this.dy+(this.orig_y - this._y)/3;
        updateAfterEvent();
    }
}
Avatar billede barklund Nybegynder
19. maj 2003 - 20:06 #10
nu snapper den øjeblikkeligt til musen - og det er indenfor en radius af firkant af 100 px rundt om objektet (ellers kan man næsten ikke se det) - den kan dog godt snappe elastisk til musen også....
Avatar billede moefelt Nybegynder
19. maj 2003 - 20:51 #11
ahhhh super cool- u're the man. Skriv et svar!!
Avatar billede barklund Nybegynder
19. maj 2003 - 20:53 #12
Håber, at det var det, du ville have... :)
Avatar billede barklund Nybegynder
20. maj 2003 - 17:45 #13
Tark :)
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