09. juni 2001 - 00:18Der er
18 kommentarer og 1 løsning
Bevægelse af movieclip/graphic
Jeg står og er ved at lære actionscript, og kunne godt tænke mig en lille hurtig visning af følgende:
Jeg har 3 knapper... 1. stk movieclip
movieclippet ligger på den plads som knap1 fører den til! når man så trykke skal clippet rykke sig hen til det sted som nu enten knap2 el. 3 henviser til! (ligeledes hvis man derefter trykker på knap1.. skal clippet rykke tilbage til position 1!)
Altså hvordan man specificerer position og bevægelse af movieclip med diverse knapper!
Dit movieclip skal have et instance navn. Det giver du det ved at markere det (ikke åbne det) og åbne instance panelet. Her giver du det et navn, fx. mc1.
Du kan nu give dine knapper ovenstående action, og blot lave om på x og y værdierne, så du placerer dit movieclip på skærmen hvor du vil.
Jeg ved ikke om jeg har forstået helt hvad du vil.
Du kan styre dit movieclip vha. knapperne ved at give det et instance navn som omtalt ovenfor.
I dit movieclip laver du herefter de bevægelser som du ønsker det skal foretage sig vha. motion -tween. Fx. kan du fra frame 1 til 30 lave en bevægelse, fra frame 31 til 60 den næste og fra frame 61 til 90 den tredie bevægelse. Der skal sættes en stop Action i frame 1, 30, 60 og frame 90.
Du giver nu dine knapper følgende actions: Fx. on (release) { with (_root.mc1) { gotoAndPlay (31); } }
Hermed kan du kontrollere hvor på movieclippets timeline du vil starte, og den aktuelle tween afspilles med bevægelse af movieclippet.
Ja i know.. det er jo nemt nok.. og også sådan jeg plejer at lave det.. MEN hvis man nu har en del knapper der alle refererer til forskellige steder er det LIDT molbo at sidde og lave tweening på alle sammen.. Derfor ville det være nemmere hvis man via actionscript kunne få dem til at scrolle fra det sted de nu er på .. og til en destination valgt med den knap man trykker på !... Håber du forstår!
Okay. Du har en x,y udgangsposition og vil ende i en anden x,y slutposition. Du skal så lave noget actionscript der beregner x,y værdierne langs linien der forbinder de to punkter. Disse værdier skal løbende sættes ind i: setProperty (\"_root.mc1\", _x, værdix); setProperty (\"_root.mc1\", _y, værdiy); Herved flytter dit movieclip sig som du ønsker. Problemet er at lave beregningen af koordinaterne, men det kan lade sig gøre. Jeg har ikke pt. formlen til dette!
Svaret er ikke færdigt, men jeg accepterer det nuværende, men hvis det skulle lade sig gøre at nogen lagde inde med løsningen stiller jeg glædeligt 300 point på højkant igen!
Der findes en række algoritmer til at beskrive bevægelser. Den mest anvendte, og nemmeste, er at bruge friktion. Du kunne vedhæfte følgende handlinger til dit movie clip:
this._x += (destX-this._x)/20
Dette medfører, at dit movie clip hele tiden bevæger sig mod destX (det starter hurtigt ud og bevæger sig derefter langsommere og langsommere, ligesom når du bremser på en cykel). Når du klikker på en knap skal du bare ændre på variablen destX. I eksemplet bevæger dit movie clip sig kun horisontalt, men du skal bare ændre x til y for at bevæger dig vertikalt.
gotcha: kan du lave et hurtigt eksempel ville det hjælpe MEGET.. bare med 2 knapper/movieclips.. så jeg kan se hvordan det virker(jeg er IKKE den store koder, og skal gerne have det sort på hvidt så at sige.. for at det ryger ind.. :) )
Hvis du kan det.. åbner jeg lige et nyt sprgs. 300 point som du kan svare på! :)
Har lige lavet et eksempel. Det er bare et smule mere avanceret, da det hele er lavet dynamisk (du skal bla. bare ændre på en variabel for at ændre antallet af knapper):
det var menningen at jeg kunne placere knapperne hvor jeg nu ville.. og kun \"post...\" der bevægede sig... efter hvad man nu gav af kordinater i knappen.. gør denne det også?
Ja, det gør den. Hvis du åbner \"masterItem\" kan du se, at der er en usynlig knap i øverste lag. Når man klikker på knappen ændres destinationen for \"posIndikator\" til den position, som movie clippet har:
on (release) { _root.posIndikator.destX = _x; }
For at gøre filstørrelsen mindre og gøre det lettere at rette i filen, tager jeg og kopierer \"masterItem\" et antal gange. Hver af disse kopier stiller jeg så op på en række. Når man klikker på den knap, som er inde kopien, ændres destinationen for \"posIndikator\" til den position, som kopien har (jf. ovenstående kode).
Ja, det kunne du godt bruge. I eksemplet ville det bare betyde, at du flytter \"posIndikator\" 555 pixels væk fra den knap, du har trykket på.
Synes godt om
Ny brugerNybegynder
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.