Key.addListener
|
Her er en kort tutorial på hvordan man kan bruge Key.addListener i flash. Key.addListener bruges til at aktivere tastaturet som en del af sin flash kreation. I denne eksempel vil vi bruge den til kontrol af et animation i en Movieclip. Lav først dit grafik: ![]() Marker derefter dit grafik og tryk F8 (Insert > New Symbol). Her får vi 3 valgmuligheder, ![]() I denne anledning bruger vi Movieclip og giver den navnet "mov_container_object". Marker dit nye Movieclip og tryk F8 endnu en gang, vælg Movieclip og kald den "mov_container". Giv den derefter en Instance, f.eks "animation". Info: Instance bruger man til at identificere objekter med, så man senere hen kan tilegne dem actions eller variabler. ![]() Derved har vi lavet en Movieclip inde i en Movieclip. Nu skal vi lave animationen: Gå ind i den sidste Movieclip du lavede, "mov_container", ved at dobbeltklikke på den (Edit > Edit in place). Placer den næste Movieclip hvor du have animation skal starte, f.eks i venstre side. ![]() Dernæst skal vi til at koncentrere os om Timeline vinduet, som du finder midt øverst i flash. Info: Hvis denne ikke er fremme, klik da på "Timeline" knappen samme sted (Window > Timeline). Nu skal du vælge hvor mange frames din animation skal tage, i dette eks. bruger vi 60. Marker det ønskede frame og tryk F6 (Insert > Timeline > Keyframe). ![]() Nu har du oprettet en Keyframe, et fast punkt på dit Timeline, hvor du nu kan vælge hvorhenne din animation, i dette tilfælde, skal slutte. F.eks højre side. ![]() For at få flash til at animere vores Movieclip over den angivne frame bredde, højreklikker du på første frame af animeringen, eller midt i, og vælger "Create Motion Tween". Nu bliver frame linjen blå og med en pil der viser at Tween er sat til. ![]() Info: Hvis der vises en blå linje med en stiplet streg betyder det at du har flere end en Movieclip i en Layer eller at du har glemt at lave en Movieclip af dit grafik. Tip: For at eventuel gøre animationen lidt mere spændene kan man i Properties vinduet sætte sin Motion Tween til at rotere. Du kan nu prøvekøre din animering ved at markere første Frame og trykke Enter (Control > Play) Info: Standard kører flash på 12 frames per sekund, dette kan ændres i vinduet Properties ved Frame Rate for at få en hurtigere hastighed, uden at skulle ændre Frame bredden (Window > Properties > Properties). Det var alt for grafik og animering, nu kommer vi til scriptet: For at få vores animation til at stå stille endtil man trykker på en tast, skal vi indsætte en "stop" action på første frame. Så marker Frame 1 og skriv:
Nu skal vi have skrevet funktionen der aktiveres ved tryk på tastaturet, men vi skal først ud af den Movieclip som vi er i og tilbage til starten af vores arbejdsplads. Dette gøres ved at dobbelt klikke på det tomme plads udenom grafikken (Edit > Edit document). Opret derefter et nyt Layer, marker første Frame og åben Actions vinduet ved at trykke F9 (Window > Actions). ![]() Vi laver først en Key Listener, som vi kalder "keyListener" og fortæller flash at det er en object. Info: Key.addListener registrerer enhver tryk på tastaturet, så flash får afvide hvilke taster der trykkes på. Det skrives sådan:
Så skal vi have en funktion som aktiveres ved tryk på tastaturet:
Her finder funktionen ud af om en tast er trykket nede ved hjælp af vores keyListener. onKeyDown siger næsten sig selv, altså ved tast tryk bliver den aktiveret. I dette eksempel vil vi bruge piletasterne HØJRE og VENSTRE for at styre vores animation. Derfor skal vi have to If statements som først tjekker om de er aktive, og derefter udfører actions. Info: En If statement bruges til at tjekke om en omstændighed er sandt eller falsk, eller om en variable er lig med et andet. HUSK: Disse If statements skal være inden i vores onKeyDown funktion, ellers vil flash ikke aktivere dem ved tryk på tastaturet (Se sidste illustation).
Her tjekker den om HØJRE piletast er lig med "true", altså om det er sandt den er trykket ned. Derefter kører den en gotoAndStop action som siger at i vores "animation" movieclip skal den gå til nuværende Frame +1. Så når vi trykker på HØJRE piletast vil vores animation gå en Frame frem. Den næste If statement er sådanset det samme, undtagen at vi vil have den skal tjekke om VENSTRE piletast er lig med "true" og at dens gotoAndStop action skal -1 Frame. Så når vi trykker på VENSTRE piletast vil vores animation gå en Frame tilbage.
Sådan ser det endelige script ud: ![]() Det var det! Download eksempel her: http://www.aeromedia.dk/rowl/key_addlistener/key_addlistener.zip Det var så en af de måder hvorpå man kan bruge Key.addListener i flash. I dette eksempel brugte vi onKeyDown funktionen til at aktivere vores script, men man kan også bruge onKeyUp, som så gør det modsatte. Nemlig at aktivere ved slip af tast.
Ved If statement kan man istedet for "true" bruge "false", så vil den tjekke om omstændigheden er falsk.
[/I]Du kan finde mere info om Key values og objects i ActionScript Dictionary: http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary393.html Sidst redigeret 20:00 - 07/02/2006 |
|
Kommentarer
Giv din mening tilkende om denne artikel, eller læs andres.Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
|
Amen det er jo smukt.. :up: Sammen med den anden artikkel har man jo snart et "Shoot em up" spil :) |
Oprettet af:
|
| Genial artikel, håber virkelig på flere i fremtiden! |
Oprettet af:
|
|
Tak igen! undskylder hvis der smutter et par stavefejl ind, men det er hvis nogenlunde. Og der kommer helt sikkert flere...! altså artikler.. :) |
Oprettet af:
|
|
wow :O en af de bedste artikler her på rowl, efter min mening :D |
Oprettet af:
|
| Beautyful |
Oprettet af:
|









