Avatar billede cont_manager Nybegynder
04. april 2002 - 10:20 Der er 17 kommentarer og
1 løsning

MC som bevæger sig med/mod musen

Hej. Det ser ud som et godt sted for flashfolk, det her"!"!

Jeg prøver : Hvordan er et script som får MovieClipet til at bevæge sig modsat musen på den vandrette akse??
Det skal ikke bevæge sig op eller ned..

Kommer selvøfli måske an på hvor det skal være placrert, eller hva?

gode og venligste hilsenr fra CONT_MANAGER:::
Avatar billede cont_manager Nybegynder
04. april 2002 - 10:24 #1
Min film er 750px bred og 390 px høj.
Jeg glemte en vigrig detalje: Når man klikker så skal MovieClipet køre til musens placering!!!
Jeg tror den er svær og der står 60 point til en svær men kan se nogen gir 200 point for lette spørghsmål??? jeg kender ikke systemet, så bare sig til..
Avatar billede donslund Nybegynder
04. april 2002 - 12:02 #2
Hvis du på dit mc sætter følgende:
onClipEvent(enterFrame) {
setProperty (this, _x, (750-(getProperty(_root._xmouse, _x)));
}

onClipEvent(mousedown) {
setProperty(this, _x, _root._xmouse);
}

Mon ikke det skulle virke.

I øvrigt synes jeg 60 point er rimeligt for dette spørgsmål. De der giver urimelige summer har misforstået det hele lidt.

Håber du får dine ting til at virke.
Avatar billede pixelpaw Nybegynder
04. april 2002 - 12:21 #3
jeg har måske en lidt mere fancy (og indviklet) metode:

onClipEvent (load) {
    intMaxSpeed = 8;
    intSpeed = 0;
    intMovieWidth = 550;
    intBorderLeft = 25;
    intBorderRight = 25;
}
onClipEvent(mouseDown){
    intTargetX = _root._xmouse;
    blnMouseDown = true;
}
onClipEvent (enterFrame) {
    if(!blnMouseDown){
        _root._xmouse<_x ? intTargetX=intMovieWidth-intBorderRight : intTargetX=intBorderLeft;
    }
    intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=1;
    intSpeed += intSpeedInc;
    intSpeed>intMaxSpeed ? intSpeed=intMaxSpeed : "";
    intSpeed<(intMaxSpeed*-1) ? intSpeed=(intMaxSpeed*-1) : "";
    intTargetX-_x<8 && intTarget-_x>(-8) ? intSpeed=0 : "";
    //_x<=25&&_root._xmouse>_x ? intSpeed=0 : "";
    //_x>=intMovieWidth-25&&_root._xmouse<_x ? intSpeed=0 : "";
    _x += intSpeed;
}

der er stadig lige en lille bug jeg skal have fixet, men er det noget i den stil du er ude efter?
Avatar billede pixelpaw Nybegynder
04. april 2002 - 12:42 #4
Denne her er bedre. Lav dit movieclip og copy/paste dette script ind på det:

onClipEvent (load) {
    intMaxSpeed = 8;
    intSpeed = 0;
    intMovieWidth = 550;
    intBorderLeft = 25;
    intBorderRight = 25;
}
onClipEvent(mouseDown){
    intTargetX = _root._xmouse;
    blnMouseDown = true;
}
onClipEvent (enterFrame) {
    if(!blnMouseDown){
        _root._xmouse<_x ? intTargetX=intMovieWidth-intBorderRight : intTargetX=intBorderLeft;
    }
    intDistance = Math.max(intTargetX-_x,(intTargetX-_x)*-1);
    if (intDistance<8){
        _x = intTargetX;
        intSpeed = 0;
    } else {
        intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=1;
        intSpeed += intSpeedInc;
        intSpeed>intMaxSpeed ? intSpeed=intMaxSpeed : "";
        intSpeed<(intMaxSpeed*-1) ? intSpeed=(intMaxSpeed*-1) : "";
    }
    _x += intSpeed;
    test=intDistance;
}
Avatar billede alexander_j Nybegynder
04. april 2002 - 16:11 #5
donslund og pixelpaw >> Det ser alt sammen meget kompliceret ud ;( Alt hvad han vil er jo at få MC'et til at flytte sig modsat musemarkøren på den vandrette akse (x)!

cont_manager >> Jeg tror det kan gøres simplere
Hvis du sætter følgende kode på dit MC, så skulle det vist virke:

onClipEvent (enterFrame) {
    this._x = 375 - _root._xmouse;
}

Vh. Alexander
Avatar billede cont_manager Nybegynder
04. april 2002 - 16:13 #6
Hej pixelpaw, wowaa et fedt script! har du selv lavet det???
det er perfekt, men hvis det er okay har lige et par spørgmsål til rettelser:: (nu da jeg har set hvordan det virker)

Sådan her bruger jeg det nu, hvilket betyder at det ikke kører væk fra musen og alt det, men kun kommer susende når jeg klikker!

onClipEvent(load) {
    intMaxSpeed = 25;
    intSpeed = 0;
    intMovieWidth = 750;
    intBorderLeft = 0;
    intBorderRight = 0;
}
onClipEvent(mouseDown){
    intTargetX = _root._xmouse;
    blnMouseDown = true;
}
onClipEvent(enterFrame) {
    /*if(!blnMouseDown){
        _root._xmouse<_x ? intTargetX=intMovieWidth-intBorderRight : intTargetX=intBorderLeft;
    }*/
    intDistance = Math.max(intTargetX-_x,(intTargetX-_x)*-1);
    if (intDistance<25){
        _x = intTargetX;
        intSpeed = 0;
    } else {
        intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=1;
        intSpeed += intSpeedInc;
        intSpeed>intMaxSpeed ? intSpeed=intMaxSpeed : "";
        intSpeed<(intMaxSpeed*-1) ? intSpeed=(intMaxSpeed*-1) : "";
    }
    _x += intSpeed;
    test=intDistance;
}

1.Hvordan ændrer jeg ovenstående script så at det ikke kommer susende til markøren når jeg trykker, men KUN når jeg "roller over"???

2.Nu er det sådan at jeg meget gerne vil have at det er UDEN for stagen når det loader. Hvad er det der gør at det altid er på stage?

Venlige og storartede takker fra CONT_MANAGER!!!
Avatar billede cont_manager Nybegynder
04. april 2002 - 16:14 #7
Alexander - det ser jo spændende ud. Prøver lige... *S*
Avatar billede alexander_j Nybegynder
04. april 2002 - 16:15 #8
Sorry koden skulle naturligvis se sådan her ud:

onClipEvent (enterFrame) {
    this._x = 750 - _root._xmouse;
}

Vh. Alexander

Ps. svaret her ligger urimeligt tæt op ad donslund's svar, så snyd ikke ham for sine point!
Avatar billede cont_manager Nybegynder
04. april 2002 - 16:16 #9
Alexander, brilliant set! Det virker... men jeg leger nu lige lidt videre med pixelpaws mastodont...
Avatar billede cont_manager Nybegynder
04. april 2002 - 16:17 #10
Alexander- du har dog ikke halvdelen af mit oprindelige spørgsmål med i din løsning! (kommentar nr.1) *S*
Avatar billede cont_manager Nybegynder
04. april 2002 - 16:18 #11
Smutter lige for en stund... zzzz
Avatar billede alexander_j Nybegynder
04. april 2002 - 16:26 #12
Beklager jeg fik ikke læst din kommentar ordenligt!

Vh. Alexander
Avatar billede pixelpaw Nybegynder
05. april 2002 - 04:04 #13
1)
onClipEvent(load) {
    intMaxSpeed = 25;
    intSpeed = 0;
    intMovieWidth = 750;
    intBorderLeft = 0;
    intBorderRight = 0;
}
/*onClipEvent(mouseDown){
    intTargetX = _root._xmouse;
    blnMouseDown = true;
}*/
onClipEvent(enterFrame) {
    /*if(!blnMouseDown){
        _root._xmouse<_x ? intTargetX=intMovieWidth-intBorderRight : intTargetX=intBorderLeft;
    }*/
    intDistance = Math.max(intTargetX-_x,(intTargetX-_x)*-1);
    if (intDistance<25){
        _x = intTargetX;
        intSpeed = 0;
    } else {
        intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=1;
        intSpeed += intSpeedInc;
        intSpeed>intMaxSpeed ? intSpeed=intMaxSpeed : "";
        intSpeed<(intMaxSpeed*-1) ? intSpeed=(intMaxSpeed*-1) : "";
    }
    _x += intSpeed;
    test=intDistance;
}

på din knap laver du så dette:
on(rollOver){
    intTargetX = _root._xmouse;
    blnMouseDown = true;
}
Avatar billede pixelpaw Nybegynder
05. april 2002 - 04:06 #14
2)
i onClivEvent(load) tilføjer du
    _x = -50;
det burde virke. Jeg har ikke testet.
Avatar billede cont_manager Nybegynder
05. april 2002 - 10:28 #15
Du har forlængst scoret dine (mine) points men nu en lille finpudsnings-ting som jeg ikke kan finde ud af....jeg fatter jo ikek helt hvad dit script laver, men fred være med det......
Jeg har sat hastigheden på mc*et bevægelse op, men kan kun få den til at køre hurtigt mod højre????

Nu ser det sådan ud + rollover på knapper...
::::
onClipEvent(load) {
    intMaxSpeed = 50;
    intSpeed = 10;
    intMovieWidth = 750;
    intBorderLeft = 0;
    intBorderRight = 0;
    _root.blnMouseDown = false;
}
onClipEvent(enterFrame) {
    if(!_root.blnMouseDown){
        _root._xmouse<_x ? _root.intTargetX=intMovieWidth-intBorderRight : _root.intTargetX=intBorderLeft;
    }
    intDistance = Math.max(_root.intTargetX-_x,(_root.intTargetX-_x)*-1);
    if (intDistance<50){
        _x = _root.intTargetX;
        intSpeed = 0;
    } else {
        _root.intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=10;
        intSpeed += intSpeedInc;
        intSpeed>intMaxSpeed ? intSpeed=intMaxSpeed : "";
        intSpeed<(intMaxSpeed*-1) ? intSpeed=(intMaxSpeed*-1) : "";
    }
    _x += intSpeed;
    test=intDistance;
}
Avatar billede pixelpaw Nybegynder
05. april 2002 - 12:42 #16
I linien
_root.intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=10;
har du ændret
intSpeedInc=1
til intSpeedInc=10

"intSpeedInc" er en forkortelse af "intSpeedIncrease"
Det er altså det hastigheden bliver forøget med.
Men du har kun ændret det for den ene vej.
intSpeedInc=(-1)
fortæller forøgelsen den anden vej. Så hvis du vil ændre forøgelsen skal du ændre hele linien til
_root.intTargetX<=_x ? intSpeedInc=(-10) : intSpeedInc=10;
Avatar billede pixelpaw Nybegynder
05. april 2002 - 12:54 #17
_root.intTargetX<=_x ? intSpeedInc=(-1) : intSpeedInc=1;

er faktisk det samme som

if(_root.intTargetX<=_x) {
    intSpeedInc=(-1);
} else {
    intSpeedInc=1;
}
Avatar billede cont_manager Nybegynder
05. april 2002 - 12:59 #18
Takker ærbødigt for din hjælp!
Håber jeg kan hjælpe dig en dag.
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