Avatar billede thingholm.dk Nybegynder
17. maj 2002 - 11:16 Der er 9 kommentarer og
1 løsning

Fysik

Hej

Jeg har et movieClip som jeg gerne vil flytte i en lige streg fra a til b ved hjælp af scripting.

Kan nogen hjælpe mig med det?

Lads os arbejde med disse positioner:

start X = 100;
start Y = 100;

end X = 300;
end Y = 300;

VH

Anders
Avatar billede hoejrup Nybegynder
17. maj 2002 - 11:20 #1
Du har det med at lukke spørgsmål umotiveret, desuden har du flere åbne spørgsmål.

/per
Avatar billede thingholm.dk Nybegynder
17. maj 2002 - 11:29 #2
Hvilket spørgsmål er lukket umotiveret?

Man kan vel have flere åbne sprøgsmål??
Avatar billede baitianlong Nybegynder
17. maj 2002 - 16:07 #3
Når den skal flytte sig derhen kan du gøre således:

onClipEvent(load) {
setProperty(this, _x, 100);
setProperty(this, _y, 100);
fart = 3;
}
onClipEvent(enterFrame) {
  if(this._x<300 and this._y<300) {
  setProperty(this, _x, _x+fart);
  setProperty(this, _y, _y+fart);
  }
}
Avatar billede baitianlong Nybegynder
17. maj 2002 - 17:13 #4
Når du siger fysik tænker du nok på at regne den anden vej. Hvis man kender vinklen og skal finde afstandende på x og y aksen bruger man jo sinus og cosinus. Men det er jo ikke nødvendigt her.

Vil du kende vinklen (arctangens/theta) kan du bruge:

start_X = 100;
start_Y = 100;

end_X = 300;
end_Y = 300;

vinkel = 180/Math.PI * Math.atan((end_y-start_y)/(end_x-start_x));

I dette tilfælde giver det naturligvis 45 deg.
Avatar billede thingholm.dk Nybegynder
18. maj 2002 - 13:18 #5
Det er nok noget ala det sidste, som jeg skal bruge, da positionerne kan skifte hele tiden.

Men hvordan finder jeg ud af hvor mange x'er og y'er den skal flytte, for at nå til punkt b?
Avatar billede baitianlong Nybegynder
18. maj 2002 - 15:36 #6
Ved at trække dem fra hinanden !!!??!!

x-forskel = _punktB._x - this._x;
y-forskel = _punktB._y - this._y;

Prøv at formulér tydligere hvad du ønsker, for jeg har jo svaret på dit spørgsmål
Avatar billede thingholm.dk Nybegynder
19. maj 2002 - 15:56 #7
Sorry my bad.

Det er rigtigt at denne virker:

onClipEvent(load) {
setProperty(this, _x, 100);
setProperty(this, _y, 100);
fart = 3;
}
onClipEvent(enterFrame) {
  if(this._x<300 and this._y<300) {
  setProperty(this, _x, _x+fart);
  setProperty(this, _y, _y+fart);
  }
}

Men den virker ikke hvis jeg skal fra f.eks. -300, -300 til 0,0

Med andre ord, så skal den laves mere dynamisk / automatisk, da mine start og slut koordinater kan variere fra alt mellem +- 1000 til +- 1000.
Avatar billede baitianlong Nybegynder
19. maj 2002 - 16:24 #8
onClipEvent(enterFrame) {
fart = 3;
vinkel = 180/Math.PI * Math.atan((end_y-start_y)/(end_x-start_x));
step_y = (Math.cos((Math.PI/180)*vinkel))*fart;
step_x = (Math.sin((Math.PI/180)*vinkel))*fart;
setProperty(this, _y, this._y - step_y);
setProperty(this, _x, this._x + step_x);
}

Så kan du sætte end_y, start_y, end_x og start_x til hvad du vil.
Avatar billede thingholm.dk Nybegynder
21. maj 2002 - 10:02 #9
Den virker ikke :-(

Ligegyldigt hvad jeg sætter disse til:

start_x = 100;
start_y = 100;
end_x = 0;
end_y = 0;

flytter den bare skråt opad...
Avatar billede thingholm.dk Nybegynder
30. maj 2002 - 13:30 #10
Er der andre, der har et bud?
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