For det første, duer det med on(keypress) ikke fordi det skal asignes til en knap. Jeg har brug for at kunne stoppe og starte min movie som er en præsentation som kører fra start til slut på en storskærm på en messe. Nærmere bestemt skal den startes ved tryk på en tastaturknap, så kører den afsted, men stopper selv nogle steder, og her skal den kunne sættes igang igen med en anden tastaturknap. Der er ikke nogle knapper lagt ind i movien til at smide ActionScripts på. For det andet, kunne jeg godt tænke mig hvis Barklund ville komme med et eksempel på hvordan koden skrives med Key.addlistener - ellers får jeg det aldrig til at virke :))
Har du kigget på, hvordan man laver en keylistener i Flash hjælpen?
Og derudover er on(keypress) jo netop lidt falsk, da man godt nok lægger det på en fysisk knap, men at det ikke er en knap, der skal trykkes på som sådan - den aktiveres netop ved tastetryk og ikke musetryk. Hvordan skulle den ellers virke - så ville on (keypress) jo slet ikke give mening, hvis man skulle bruge musen?
Det er ret nemt, mange har fundet ud af det før dig - så jeg er sikker på, at Flash hjælpen har langt rigeligt information. Kig først under Key.addListener og Key.onKeyUp, derefter Key.getCode() til at finde ud af, hvilken tast, der er trykket på.
Hmm, jeg prøvede med on(Keypress), men flash brokkede sig og fortalte at det kun kunne bruges på en knap...jeg ved ikke hvorfor! Men jeg undlader at brugen den, når du nu siger at jeg ikke må! Nu er vi jo nok ude i det relative mht hvad der er nemt og hvad der ikke er, jeg spørger fordi jeg ikke finder det nemt, men behøver hjælp for at komme videre :- Jeg har lavet dette her, men er i tvivl om hvordan jeg gør rede for hvilken tastaturknap man skal trykke på:
stop();
var keyListen:Object = new Object(); keyListen.OnKeyDown = function(){ gotoAndPlay(2); }
Først mht. on(keypress) - ja du skal lægge det på en knap, men nej knappen er ikke en normal knap. Du skal bare lave en knap, men den skal ikke bruges til andet end at registrere tastetryk. Derfor er det lidt fjollet - men det virker.
Du skal lige få dit objekt til at lytte efter key-events først - dette gøres med Key.addListener. Derefter skal du inden i din funktion (der skal hedde onKeyDown eller endnu bedre onKeyUp) kan du lave en if (Key.getCode() == et_tal) gør noget...
Efter at have læst i Flash hjælpen, har jeg så fundet frem til dette:
stop();
myListener = new Object(); myListener.onKeyUp = function () { trace ("You released a key."); } Key.addListener(myListener);
var keyListen:Object = new Object(); keyListen.OnKeyUp = function(){ gotoAndPlay(2); }
Men jeg er nu meget i tvivl om hvordan jeg tilegner en bestemt knap til funktionen, det ser ud til at være dette script jeg skal bruge???? (The following script uses the Key object to identify keys on any keyboard so that the user can control a movie clip. )
Tja, nu sagde jeg jo Key.getCode - Key.isDown er ikke helt anvendlige her.
Men hvorfor har du lige pludselig to objekter - hvoraf det ene ikke bruges?
myListener = new Object(); myListener.onKeyUp = function () { trace ("You released a key: "+Key.getCode()); } Key.addListener(myListener);
Nu kan du se, hvilken tast du har sluppet. Altså du får tal-koden for tasten.
Denne kan du så bruge til at skrive noget med:
myListener = new Object(); myListener.onKeyUp = function () { if (Key.getCode() == 65) { trace("Der er trykket på a"); } } Key.addListener(myListener);
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.