Avatar billede paask Nybegynder
26. oktober 2001 - 19:39 Der er 48 kommentarer og
1 løsning

Problemer med keyPress \"<Space>\"

Sidder og får lidt stress over keyPress.

Jeg har 2 MC\'s på stage. De har hver en knap og yderligere et MC. Knapperne gør at parent MC\'et dragges. De to ekstra MC\'s indeholder 4 frames med 4 stykker grafik (en ting fra 4 sider). Med startDrag skal man kunne ændre tingens udseende (nærmest dreje den). Det virker helt fint, når jeg kun bruger keyPress \"<Space>\" på det ene MC. Så snart 2 MC\'s får denne action virker ingen af dem! Kan det passe at keyPress \"<Space>\" kun kan bruges på ét element i hele ens movie? (lidt ironisk, for forhåbentligt passer det ikke!)

I kan se mit script her:

on (press) {
    startDrag (this, true);
    this.hey = 1;
}
on (release) {
    this.hey = 0;
    stopDrag ();
}

on (keyPress \"<Space>\") {
    if (this.hey == 1) {
        space = space+Number(1);
        if (space !=0) {
            _root.tv.tv2.nextFrame ();
        }
    }
}

Hvor tv2 er MC\'et med de 4 frames i, sidste frame (5) har en gotoAndStop(1); action.

om sagt virker dette script helt fint. Men så snart 2 MC\'s har lignende scripts (ny sti etc.) virker ingen af dem. Nogle forslag?!

mvh
paask
Avatar billede paask Nybegynder
26. oktober 2001 - 19:43 #1
skrev i øvrigt først bare \'hey\' - ikke this.hey - det var et forsøg på at forbedre, da begge har samme variabel \'hey\'. Jeg har desuden også forsøgt at ændre variabel navnene helt (burde ikke være nødvendigt) men intet hjælper :*(
Avatar billede flash_gordon Nybegynder
26. oktober 2001 - 20:00 #2
Er de to movieclips i samme frame?
- Eller så burde det egentlig stadigvæk, bare ved at begge reagerede.
- Jeg tror jeg vbil følge med i dette spørgsmål.
Avatar billede paask Nybegynder
26. oktober 2001 - 20:10 #3
Ja de er i samme frame. Og ja, det burde virke, omend ikke andet således at begge regerer på det. Men begge Movies er enkeltvist visible true og false, dvs. man ser kun det ene MC ad gangen...
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:19 #4
Det lyder strange..

Prøv at forenkle det lidt: På den ene MC\'s knap

on (keyPress \"<Space>\") {
trace(\"MC1 spacebar\");
}

På den anden,

on (keyPress \"<Space>\") {
trace(\"MC2 spacebar\");
}

Og tjek hvad man så ser i output..
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:22 #5

Hvis der stadig intet sker, så prøv med 2 forskellige

                    on (keyPress \"<Enter>\") {
                      trace(\"MC1 Enter\");
                      }

                      På den anden,

                      on (keyPress \"<Space>\") {
                      trace(\"MC2 spacebar\");
                      }

mvh geo
Avatar billede paask Nybegynder
26. oktober 2001 - 20:22 #6
ja, for intet skete... det prøver jeg lige.
Avatar billede paask Nybegynder
26. oktober 2001 - 20:27 #7
ok, brugte down istedet for enter, da denne spiller videre i movien.

down bliver tracet, space ikke. Det er som om hele funktionen keyPress \"<Space>\" bliver sat ud af spil i det der er 2 knapper med denne action !?!
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:33 #8
Nej, hvis du kun fik et output fra \"<Down>\" betyder det at on (keyPress \"<Space>\") ikke bliver kaldt .
Jeg vil gætte på at hvis du ændrer dem begge vil det stadig kun den ene der bliver kaldt

                                        on (keyPress \"<Down>\") {
                                            trace(\"MC1 Down\");
                                            }

                                            På den anden,

                                            on (keyPress \"<Up>\") {
                                            trace(\"MC2 Up\");
                                            }

Husk lige at tilføje MC1, MC2 så vi begge kan referere til MC\'erne
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:38 #9
Hvis det stadig kun er den ene MC der svarer,  er det sikkert MC instance navnet der ikke er unik. (de har måske endda samme navn ???
Avatar billede paask Nybegynder
26. oktober 2001 - 20:42 #10
Både up og down bliver tracet! Og, det er unikke MC\'s med fuldstændigt korrekte instance navne etc. Jeg har så mange at jeg er nødt til at holde styr på dem med løftet pegefinger :0)

Dvs. med forskellige keyPress taster fungerer det, men bare ikke når der er to af samme !+
Avatar billede paask Nybegynder
26. oktober 2001 - 20:45 #11
Jeg har forsøgt mig med keyDown der er et MocieClip event og registrerer om en tast bliver trykket ned. Altså hvilken som helst tast. Det virker heller ikke...
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:49 #12
Ja, så bliver det et spørgsmål for eksperterne... vender tilbage hvis jeg skulle se lyset :)
Avatar billede paask Nybegynder
26. oktober 2001 - 20:53 #13
Hmmm ok, men ellers tak indtil nu :0)

Jeg håber svaret kommet flyvende med en projektør til dig ;0)
Avatar billede paask Nybegynder
26. oktober 2001 - 20:56 #14
Space bliver ikke tracet når 2 MC\'s har en keyPress\"<Space>\" action :*(

De bliver ikke registreret.
Avatar billede lingoman Nybegynder
26. oktober 2001 - 20:56 #15
Ellers har jeg prøvet at \"kalde\" på andre så vi er helgarderet ;)
Avatar billede paask Nybegynder
26. oktober 2001 - 20:58 #16
Ah takker og herligt, det lyder super ;0)
Avatar billede beatone Nybegynder
26. oktober 2001 - 21:06 #17
skal du lave en slags toggle hver gang du trykker på space?....skal bare lige forstå det helt korrekt :)
Avatar billede paask Nybegynder
26. oktober 2001 - 21:10 #18
Ja, og space er den eneste knap der benyttes. Alle de ting der skal toggles er fra start usynlige, man kan samle dem op fra nogle kasser, dvs. hvert objekt der kan drejes er det enese på stage ad gangen.

Men jeg fatter det ikke, for space bliver slet ikke aktiveret, på trods af der er forskellige variabler der styrer hvornår!
Avatar billede Slettet bruger
26. oktober 2001 - 21:14 #19
Prøv:

on (press) {
    startDrag (this, true);
    _parent.hey = 1;
}
on (release) {
    _parent.hey = 0;
    stopDrag ();
}
on (keyPress \"<Space>\") {
    if (_parent.hey == 1) {
        space = Number(space)+1;
        if (Number(space) != 0) {
            _root.tv.tv2.nextFrame ();
        }
    }
}

D!ktator
Avatar billede beatone Nybegynder
26. oktober 2001 - 21:15 #20
når du siger at de er usynlige er det så visible=0 eller alpha=0 ?

Jeg har lige prøvet at lave en toggle hvor symbolet blev visible=0 når man trykkede første gang. Anden gang man gjorde det skete der ikke noget...Så satte jeg visible til alpha istedet og så virkede det...

Har det noget med sagen at gøre?! ;)
Avatar billede paask Nybegynder
26. oktober 2001 - 21:21 #21
-> D!ktator, æv æv æv, jeg troede ellers på den idé med Number(space)+1. Men no luck, virkede heller ikke :0(

Det er alpha = 0; ikke visible. For jeg er afhængig af at man kan trykke på objekterne efter startDrag, og man kan ikke aktivere noget fra et objekt med visible = false; - derfor alpha frem for visible. Jeg troe ikke det er dér fejlen ligger...
Avatar billede Slettet bruger
26. oktober 2001 - 21:21 #22
Ovenstående tæller space+ fra foregående variable, den kan nulstilles ved at sætte;

on (press) {
    space = 0;
    startDrag (this, true);
    _parent.hey = 1;
}
Avatar billede paask Nybegynder
26. oktober 2001 - 21:23 #23
Jeg bruger samme variabel, space, på dem alle, og hvis jeg så indsætter space = 0; i starten af alle scripts mener du? Lyder som en meget god idé, prøver lige :0)
Avatar billede Slettet bruger
26. oktober 2001 - 21:24 #24
paask  -> det er _parent der er interessant her.
- ikke number(space)+1

Prøv at copy/paste min kode og du vil se.... :)
Avatar billede paask Nybegynder
26. oktober 2001 - 21:25 #25
Hehe ok, jeg er i sving, det kan kun gå godt :0)
Avatar billede paask Nybegynder
26. oktober 2001 - 21:33 #26
Jeg har lige indsat det på 4 objekter, med space = 0; i starten af hvert. Det medfører at det objekt man først tager frem, hvor space så ikke ikke virker, og så dropper, det drejer når man tager et nyt objekt frem og trykker space ?!?
Avatar billede paask Nybegynder
26. oktober 2001 - 21:34 #27
Kan jeg ikke bare have variablen space i et controller MC hvor jeg så kalder den hver gang? det prøver jeg lige...
Avatar billede Slettet bruger
26. oktober 2001 - 21:36 #28
Kunsten er at kunne forklare hvad det er man vil :)
Du er velkommen til at sende dit script, eller jeg kan sende mit eksempel - måske taler vi ikke om det samme...

admin@diktator.dk
Avatar billede paask Nybegynder
26. oktober 2001 - 21:38 #29
Jeg håber vi taler om det samme, ellers må jeg lære det... Jeg sender lige et eksempel til dig. Du skal kun se på frame 2 af min movie, der ligger objekterne. På forhånd tak :0)
Avatar billede paask Nybegynder
26. oktober 2001 - 22:45 #30
Har du haft tid til at se på det D!ktator? Håber ikke den ser for forvirrende ud ;0)

Er der ingen andre med idéer?
Avatar billede Slettet bruger
26. oktober 2001 - 22:47 #31
Ok - mc i mc i mc ;-)
Du gør tingene mere kompliceret end de egentligt behøver....

Den her kode sætter du på det MC der skal rotere:

onClipEvent (enterFrame) {
    if (Key.isDown(Key.SPACE) && this.hitTest(_root._xmouse, _root._ymouse, true) && number(_root.hey) ==1) {
        this.nextFrame();
    }
}

Din knap action i de enkelte MC sættes til:

on (press) {
    startDrag (this, true);
    _root.hey = 1;
}
on (release) {
    _root.hey = 0;
    stopDrag ();
    if (eval(this._droptarget) == _root.vinduet) {
        this.gotoAndPlay(\"smidUd\");
    }
    if (eval(this._droptarget) == _root.boxMov3.hitter) {
        _root.boxMov3.gotoAndStop(1);
        this._visible = false;
    }
}
Avatar billede Slettet bruger
26. oktober 2001 - 22:51 #32
Du skal selvfølgelig lige tilpasse din knap actions ;-)
Avatar billede paask Nybegynder
26. oktober 2001 - 22:51 #33
Jeg ved det, mande mc\'s, men det er pgra. overskueligheden :0) I de der ligger inden i det draggede ligger det forskellige grafik, og kun nogle af de frames skal vises, andre kun med hitTests med noget helt tredje... Derfor så mange MC\'s ;0)

Istedet for this.nextFrame, kan jeg så ikke bruge this.MC_navnet_på_den_der_er_her.nextFrame?

Avatar billede paask Nybegynder
26. oktober 2001 - 22:52 #34
Ja det er klart ;0)

Men det virker så med Key.isDown ? Cool :0)

Jeg forsøger med det samme...
Avatar billede paask Nybegynder
26. oktober 2001 - 22:52 #35
mande = mange og der mangler kommaer, håber dog du forstår :0)
Avatar billede paask Nybegynder
26. oktober 2001 - 23:03 #36
Jamen D!ktator.... det virker jo perfekt!!! Jeg takker og bukker og er så glad :0)

Tusind tak for hjælpen...

Vil du stadig ingen point have ?

mvh
paask
Avatar billede Slettet bruger
26. oktober 2001 - 23:04 #37
Der er ingen grund til at bruge; this.MC_navnet_på_den_der_er_her.nextFrame, når scriptet eksekveres i pågældende mc. Men hvis du vil påvirke andre instanser er der selvfølgelig ikke noget i vejen for at bruge en eksakt sti.

Fordelen ved det andet er at du ikke skal rette hver enkelt mc til.
Avatar billede paask Nybegynder
26. oktober 2001 - 23:06 #38
Ja det er rigtigt, men jeg har det bare bedre med stor overskuelighed. Ellers skulle jeg have al grafikken samt den smidUdAfVinduet tween... Så vil jeg hellere have det adskilt ;0)

Men alt andet lige virker det :0)
Avatar billede Slettet bruger
26. oktober 2001 - 23:17 #39
Overskueighed er et smukt ord!
- men overskuelighed får du ikke ved at definere en masse gejl inde i dine mc\'er og koder på frames og frames imellem.

Overskuelighed får du når du samler alle dine definationer og funktioner et enkelt sted i din applikation. Det giver overblik, tryghed og ikke mindst en bedre performance.

Nå nu vil jeg drikke mig en kæp i øret :)
Go weekend
- og behold du bare dine points, eller giv dem til en anden.
http://pornolize.com/cgi-bin/pornolize2/pornolize2.cgi?lang=dk&url=http%3A%2F%2Fwww.eksperten.dk%2Fspm%2F125995&submit=Pornolize%21
Avatar billede beatone Nybegynder
26. oktober 2001 - 23:19 #40
Hvornår kommer vi andre til at se det her du har så mange problem med?...jeg er ved at være meget nysgerrig! :))
Avatar billede paask Nybegynder
26. oktober 2001 - 23:19 #41
LOL D!ktator !!!

God druktur :0)

Og takker for det hele... i øvrigt ER jeg ved at udarbejde et script der kommer til at styre en del ;0)

God Weekend
mvh
paask
Avatar billede beatone Nybegynder
26. oktober 2001 - 23:21 #42
LOL fed \"oversætter\" der diktator!!!
Avatar billede paask Nybegynder
26. oktober 2001 - 23:22 #43
Hehe, deadline på søndag... Det er et lille spil, et skoleprojekt, jeg er ved at lave med en fra hver af Film Skolen, Den Grafiske Højskole og Dansk Designskole - og de har givet mig mere arbejde end jeg troede muligt var! Og, der ligger jo et vist pres på mine skuldre.... såå ;0)

Stress stress stress... når jeg kommer med spørgsmål så hjææælp mig, hehe :0)
Avatar billede paask Nybegynder
26. oktober 2001 - 23:30 #44
hmmm svar...

Jeg svarer på alle mine egne spørgsmål idag, hehe ;0)
Avatar billede paask Nybegynder
27. oktober 2001 - 06:45 #45
I øvrigt lingoman, du burde da lige have et par points for dette her!?!
Avatar billede lingoman Nybegynder
27. oktober 2001 - 11:21 #46
Slet ikke,..men jeg er stadig ikke blevet klogere på hvorfor
\"Kan det passe at keyPress \"<Space>\" kun kan bruges på ét element i hele ens movie? (lidt ironisk, for forhåbentligt passer det ikke!)\"
Jeg ville blive glad for en forklaring :)
mvh geo
Avatar billede paask Nybegynder
27. oktober 2001 - 12:21 #47
Well, lige netop det blev jeg ikke klogere på. Ved keyPress \"<Space>\" mener jeg at sætte et keyPress på et Button, som så sættes til space. Dvs. omformuleret vil det lyde, kan man styre to forskellige buttons med en keyPress \"<Space>\" - hvoraf de ikke er visible = true; på ens tidspunkter.

Ligenetop det fandt jeg ikke ud af, mén med
D!ktators idé med Key.isDown(Key.SPACE) - der styres af MC - ikke Buttons, virker det fint.

Det vil da være dybt ironisk at have en keyPress funktion på buttons indbygget i Flash hvis man kun kan benytte den command 1 gang på ét element i en movie. Noget tilsvarende ville være kun at kunne bruge on (press) på én enkelt knap i hele movien. Der må have været noget galt, for hvorfor ellers ikke bruge MC\'s til alt?! Så undgår man også tit hånden ;0)

Håber du nu blev lidt klogere på min mening :0)

mvh
paask
Avatar billede lingoman Nybegynder
27. oktober 2001 - 12:39 #48
Ok, så vi har altså sansynligvis en Flash bug når mere end én button bruger keyPress \"<SPACE>\".
Workaround er at benytte Key.isDown(Key.SPACE) på en eller flere MC\'er.
Tak for opsummeringen, den køber jeg :)
mvh geo
Avatar billede paask Nybegynder
27. oktober 2001 - 12:51 #49
Great :0)

mvh
paask
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