Avatar billede moefelt Nybegynder
22. maj 2003 - 06:21 Der er 11 kommentarer

flade istedet for punkt + layer control

Jeg har 2 spørgs. Hvordan får jeg dette script til at bevæge sig ved mouseover på hele movieclip'et istedet for kun ved nulpunktet.

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))<10;
    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();
    }
}

Desuden skal mit movieclip flytte sig til top af scenen ved MouseOver.

60 point til hvert svar.

/Moefelt
Avatar billede hoejrup Nybegynder
22. maj 2003 - 06:31 #1
Du mangler en parantes:

onClipEvent (mouseMove) {
    this.over = Math.max(Math.abs(_parent._xmouse-this.orig_x)), Math.abs(_parent._ymouse-this.orig_y))<10;
    if (this.over) {
        this._x = _parent._xmouse;
        this._y = _parent._ymouse;
        updateAfterEvent();
    }
}

/per
Avatar billede hoejrup Nybegynder
22. maj 2003 - 06:38 #2
Nope, der mangler ikke noget.

/per
Avatar billede paask Nybegynder
22. maj 2003 - 10:28 #3
Hvordan vil du have scriptet til at sætte clippet ved musens koordinater samtidigt med det skal flytte sig til top af scenen? Det må du vist lige forklare nærmere...

Men, ved hittest af hele clippet skal det følge musen (somehow), og ved mouseout skal det bounce tilbage til oprindelig position, right?
Avatar billede barklund Nybegynder
22. maj 2003 - 14:46 #4
Jeg tror bare, du kan bruge hitTest og så "flytte" koordinaterne:

onClipEvent (load) {
    this.orig_x = this._x;
    this.orig_y = this._y;
}
onClipEvent (mouseMove) {
    this.over = this.hitTest(_parent._xmouse-this.orig_x, _parent._ymouse-this.orig_y,1);
    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 moefelt Nybegynder
22. maj 2003 - 19:09 #5
Jeg tror ikke der lige var nogen der forstod mit spørgsmål så vi prøver igen:

Det script jeg har nu klæber movieklippet til mousepointeren. Men det klæber kun hvis man er indenfor 20pixels af nulpunktet af mc'et. Nu er at mit mc jo en firkant så jeg ville gerne have at hele mc'et fungerer som "klæbepunkt".

Næste spørgsmål var at når man har mouseover på mc'et at det bliver flyttet til toppen af scenen. Altså at mc'et layer bliver flyttet til top.

/Moefelt
Avatar billede barklund Nybegynder
22. maj 2003 - 19:13 #6
onClipEvent (load) {
    this.orig_x = this._x;
    this.orig_y = this._y;
    this.prev_over = false;
}
onClipEvent (mouseMove) {
    this.over = this.hitTest(_parent._xmouse-this.orig_x, _parent._ymouse-this.orig_y,1);
    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();
    }
    if (this.over != this.prev_over) {
        this.prev_over = this.over;
        this.swapDepths(1000);
    }
}
Avatar billede moefelt Nybegynder
22. maj 2003 - 19:18 #7
hey barklund, nu sætter den mc'et øverst men klæber ikke med den effekt som du oprindeligt gav mig ;-)
Avatar billede moefelt Nybegynder
22. maj 2003 - 19:22 #8
umiddelbart kunne jeg foresitille mig at vi skulle gå væk fra det enkelte punkt der bliver erklæret og så erklære hele mc'et som "this". Hvis du forstår.
Avatar billede barklund Nybegynder
22. maj 2003 - 20:04 #9
Så hiver jeg da flash frem imens jeg skriver :)

onClipEvent (load) {
    this.orig_x = this._x;
    this.orig_y = this._y;
    this.prev_over = false;
}
onClipEvent (mouseMove) {
    this.over = this.hitTest(_parent._xmouse-(this.orig_x-this._x), _parent._ymouse-(this.orig_y-this._y),1);
    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();
    }
    if (this.over != this.prev_over) {
        this.prev_over = this.over;
        this.swapDepths(1000);
    }
}
Avatar billede moefelt Nybegynder
28. maj 2003 - 12:22 #10
Hey Barklund - Fyr lige et svar af!

;-) og tak for hjælpen

//Moefelt
Avatar billede barklund Nybegynder
28. maj 2003 - 17:48 #11
Håber det virkede...
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