Avatar billede wampiro-uha Nybegynder
22. maj 2004 - 20:21 Der er 19 kommentarer og
1 løsning

Registrere tastatur-tryk.

Jeg har en figur som ændre sig hvis man trykker højre-pil tast ned.

if(Key.isDown(Key.RIGHT) { ... }

Hvordan registrere jeg at knappen ikke bliver trykket ned mere, således at jeg kan ændre figuren tilbage til det oprindelige?

Har det for alle pil-tasterne, og det er forskelligt hvorledes min figur skal se ud, afhængig af den knap man lige har trykket ned.
Avatar billede elskermad.dk Nybegynder
22. maj 2004 - 20:30 #1
onKeyUp måske?
Avatar billede wampiro-uha Nybegynder
22. maj 2004 - 20:43 #2
Hvordan skulle min if-sætning så se ud?

For det virker ikke med if(Key.onKeyUp(Key.RIGHT)) { ...
Avatar billede elskermad.dk Nybegynder
22. maj 2004 - 20:50 #3
ehmn ved ikk om du kan sende lidt mere kode for ikke så hård til javascript igen... synes bare jeg har set den måde før :D
Avatar billede wampiro-uha Nybegynder
22. maj 2004 - 20:52 #4
Det er ikke javascript, men ActionScript :-) Flash...
Der er egentlig ikke så meget mere kode...
Avatar billede elskermad.dk Nybegynder
22. maj 2004 - 20:58 #5
argh min fejl så... troede det var javascript (dooh!) hehe... kiggede kun i "Spørgsmål data" der stod kun Generelt så troede du havde postet i programmering generelt... og sys det lignende javascript ;D
Avatar billede wampiro-uha Nybegynder
22. maj 2004 - 21:09 #6
Nogen andre der har en idé :-)
Avatar billede wampiro-uha Nybegynder
22. maj 2004 - 21:17 #7
Der er faktisk noget med onKeyUp, jeg ved bare ikke lige hvordan jeg skal lave det?

Nogen eksempler eller forslag?

Har desværre ikke flere point, de røg da exp.dk var nede!
Avatar billede Slettet bruger
22. maj 2004 - 23:50 #8
altså, du vil have din figur til at se ud på en bestemt måde når en bestemt knap er nede, og når man så giver slip på knappen skal den skifte tilbage til start figuren. Er det rigtigt forstået?
Avatar billede wampiro-uha Nybegynder
23. maj 2004 - 02:15 #9
Min figur skal se ud på en bestemt måde når man holder f.eks. højre pil nede. Når man så slipper den skal den se ud på én anden måde.

Men måden den skal se ud på er ikke den samme, som hvis man havde holdt venstre pil nede.

Det skal altså være noget ala Key.isUp(Key.Right), nu er der bare ikke noget der hedder det :-)
Avatar billede wilweb Nybegynder
23. maj 2004 - 08:59 #10
kan du ikke bare smide en : else ind i din if sætning?
Avatar billede wilweb Nybegynder
23. maj 2004 - 10:27 #11
a la dette her:
onClipEvent (keyDown) {
    if (Key.isDown(Key.RIGHT)) {
        _root.gotoAndPlay("Right");
    } else if (Key.isDown(Key.LEFT)) {
      _root.gotoAndPlay("Left");
    } else if (Key.isDown(Key.DOWN)) {
      _root.gotoAndPlay("Down");
    }else if (Key.isDown(Key.UP)) {
      _root.gotoAndPlay("Up");
    }else if (Key.isDown(Key.SPACE)) {
      _root.gotoAndPlay("Center");
    }
}
Avatar billede mat Nybegynder
23. maj 2004 - 12:16 #12
eller sær en variabel alt efter hvilken retning din karakter lige er gået:

onClipEvent (keyDown) {
if (Key.isDown(Key.RIGHT)) {
karakter.gotoAndPlay("Right");
direction = "pointing_right";
}
}

osv

Og så i din keyUp:

onClipEvent (keyUp) {
karakter.gotoAndStop(direction);
}

..noget i den stil :)
Avatar billede wampiro-uha Nybegynder
23. maj 2004 - 14:06 #13
gizom --> Det virker vel ikke efter hensigten?

mat --> Dit kan jeg sagtens få til at virke. Men jeg må sige det "hakker" noget mere, når jeg bruger onClipEvent(keyDown). Før havde jeg bare onClipEvent(enterFrame) og så indeni der havde jeg if(Key.isDown ... Der kører det hele glidende.
Har du nogen idéer til hvad det kan være?
Avatar billede mat Nybegynder
23. maj 2004 - 15:02 #14
Prop det ind i en enterFrame igen :)
Avatar billede wampiro-uha Nybegynder
23. maj 2004 - 20:45 #15
Skal jeg smække onClipEvent(KeyUp) ind i onClipEvent(enterFrame) ..???
Avatar billede wampiro-uha Nybegynder
23. maj 2004 - 20:50 #16
Nu har jeg prøvet noget, og det ser da ud til at køre ok. Er der nogen som vil optimere koden (hvis det er muligt)???

onClipEvent(enterFrame) {

    speed = 7.5;

    if(Key.isDown(Key.LEFT)) {
        if(this._x <= -20) {
            gotoAndStop(_root.prevFrame());
        } else if(this._x > -20) {
            this.gotoAndStop(_global.direction = 1);
            _x -= speed;
            _global.position = _x;
        }
    } else if(Key.isDown(Key.RIGHT)) {
        if(this._x >= 580) {
            gotoAndStop(_root.nextFrame());
        } else if(this._x < 580) {
            this.gotoAndStop(_global.direction = 4);
            _x += speed;
            _global.position = _x;
        }
    }
}

onClipEvent(KeyUp) {
    if(_global.direction == 1) {
        this.gotoAndStop(_global.direction = 2);
    } else {
        this.gotoAndStop(_global.direction = 3);
    }
}
Avatar billede mat Nybegynder
23. maj 2004 - 23:17 #17
Jeg ved ikke om der er så meget at optimere :)

Men pointen med _global (eller en af dem) er at du netop ikke behøver at skrive det hver gang du vil have nallerne i en global variabel :)

mvh mat
Avatar billede wampiro-uha Nybegynder
24. maj 2004 - 00:30 #18
Jeg læste ellers her: http://www.kirupa.com/developer/actionscript/tricks/global.htm
at man skal have _global foran!
Avatar billede mat Nybegynder
24. maj 2004 - 18:08 #19
De skriver jo at man godt kan udelade det, men skitserer et scenarie med en navnekonflikt mellem en lokal og global variabel. Den kunne man jo evt undgå hvad at bruge navnekonventioner der udelukker denne slags misforståelser, eller?
Avatar billede wampiro-uha Nybegynder
24. maj 2004 - 19:32 #20
Ok, takker for alle dine svar :-)
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