Avatar billede natsprinter Nybegynder
18. april 2007 - 15:39 Der er 8 kommentarer og
1 løsning

Matematik - så to movieclip bevæger sig modsat

Nu er matematik ikke lige min stærke side, så mon ikke der er én der kan regne formlen ud.

Først lidt fakta:

Jeg har et movieClip kaldet "fotos_mc" - bredden er 3000 pixel.

Det movieclip kører automatisk frem og tilbage i et "vindue" som måler 530 pixel.

Ynder vinduet ligger et movieClip kaldet roedKnap_mc. Denne knap skal virke som en slags scroll-bar, der automatisk kører frem og tilbage når man ikke klikker på det.

Hvordan er matematikken når "fotos_mc" bevæger sin i sin fulde længde 3000 pixel mens roedKnap_mc kun må bevæge sig inden for rammen af de 530 pixel, naturligvis i modsat retning.

Det nærmest jeg er kommet frem til er:

_root.roedKnap_mc._x = (fotos_mc._width / fotos_mc._x)

og det er ikke særligt genialt må man sige :-)
Avatar billede maqhem Nybegynder
18. april 2007 - 16:43 #1
Hvor er du heldig, for matematik er faktisk mit stærkeste fag, men jeg må indrømme, at jeg har lidt svært ved at forstå, hvad du mener... Hvis jeg har forstået det korrekt, så burde denne du:

roedKnap_mc._x = (Stage.width - roedKnap_mc._width) - fotos_mc._x / (fotos_mc._width - Stage.width) * (roedKnap_mc._width - Stage.width);

Dog ser denne mere rigtig ud i mine øjne, men jeg kender jo ikke dit formål:

Matematik er mit stærkeste fag, men jeg må indrømme, at jeg har lidt svært ved at forstå, hvad du mener... Hvis jeg har forstået det rigtigt, kan du måske bruge denne kode:

roedKnap_mc._x = fotos_mc._x / (fotos_mc._width - Stage.width) * (roedKnap_mc._width - Stage.width);
Avatar billede maqhem Nybegynder
18. april 2007 - 16:44 #2
Ej hov, dér fik vidst lidt ged i min besked... Fik taget "back-up" på teksten i stedet for koden.. Ups, lidt pinligt. Men bare spring anden gentagelse af min tekst over.
Avatar billede natsprinter Nybegynder
18. april 2007 - 17:33 #3
Ja det er meget tæt på. Problemet  er blot at det ikke er scenens bredde, men "vinduets" bredde. Jeg forstår godt din manglende indsigt, derfor har jeg lagt det ud så du kan se det (incl. din nydelige matematiske hjælp) på adressen.

http://www.testmig.dk/dovre/flash/flash.htm
Avatar billede maqhem Nybegynder
18. april 2007 - 17:40 #4
Jeg kan se, du har sat registreringspunktet i midten af roedKnap_mc. Så skal du lige addere roedKnap_mc._width * 0.5:

roedKnap_mc._x = (Stage.width - roedKnap_mc._width) - fotos_mc._x / (fotos_mc._width - Stage.width) * (roedKnap_mc._width - Stage.width) + roedKnap_mc._width * 0,5;

eller

roedKnap_mc._x = fotos_mc._x / (fotos_mc._width - Stage.width) * (roedKnap_mc._width - Stage.width) + roedKnap_mc._width * 0,5;


Men til det andet: Så skal du definere det som et bestemt antal pixels, og så udskifte Stage.width med dét antal pixels.
Avatar billede maqhem Nybegynder
18. april 2007 - 17:41 #5
Jeg må virkeligt være træt for tiden, eller også er jeg bare ikke helt vågen - nu lavede jeg lige fejl for halvtredsne gang i denne uge. På engelsk er komma jo punktum, så det er 0.5 og ikke 0,5.
Avatar billede natsprinter Nybegynder
18. april 2007 - 17:51 #6
Jeg har nu flyttet registreringspunktet, og det er bedre. Der skal lige fifles lidt med det, men mit nuværende bud er:

_root.roedKnap_mc._x = this._x / (this._width - 640) * (_root.roedKnap_mc._width - 640)+20;

Når jeg adderer med 0.5 går "den røde" kun den halve bane :-)

Lige én sidste ting. Hvis jeg vil gøre det modsatte, altså styre billederne med den røde knap - er det så samme formel?
Avatar billede maqhem Nybegynder
18. april 2007 - 18:20 #7
Glem det dér 0.5-halløj. Hvis du vil have det modsat, så er det ikke det samme. b er jo heller ikke nødvendigvis lige med bc, så fremt a = bc, bare fordi a er det. Så skal du flytte over på den anden side: b = ac. Nu har jeg ikke testet efter, men såfremt mit matematik ikke er helt forkert, så "løser" du det bare som en ligning:

_root.roedKnap_mc._x = this._x / (this._width - 640) * (_root.roedKnap_mc._width - 640)+20;
_root.roedKnap_mc._x * (this._width - 640) * (_root.roedKnap_mc._width - 640) = this._x + 20;
_root.roedKnap_mc._x * (this._width - 640) * (_root.roedKnap_mc._width - 640) - 20 = this._x;
Som også kan skrives som
this._x = _root.roedKnap_mc._x * (this._width - 640) * (_root.roedKnap_mc._width - 640) - 20;
Hvilken Flash foretrækker.
Avatar billede maqhem Nybegynder
18. april 2007 - 18:21 #8
Jeg havde lige en fejl (endnu én. Jeg må snart vågne op da) i mit eksempel:

a = bc <=> b = c/a
Avatar billede maqhem Nybegynder
18. april 2007 - 18:24 #9
Ej nu bliver jeg jo snart ked af det. Der var én mere fejl... Jeg kan ikke tænke mere :(

Glem mine udregninger, min matematik holder ikke tæt, når jeg ikke kan tænke. Ser lige på det på et andet tidspunkt, for jeg kan da slet ikke regne nu.
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