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
Annonceindlæg fra itavis
Du har det med at lukke spørgsmål umotiveret, desuden har du flere åbne spørgsmål. /per
Hvilket spørgsmål er lukket umotiveret? Man kan vel have flere åbne sprøgsmål??
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); } }
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.
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?
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
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.
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.
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...
Er der andre, der har et bud?
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.