26. oktober 2001 - 19:39Der 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?!
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
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 :*(
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.
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...
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
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 !+
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...
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!
Synes godt om
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 (); } } }
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...
-> 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...
Synes godt om
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; }
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)
Synes godt om
Slettet bruger
26. oktober 2001 - 21:24#24
paask -> det er _parent der er interessant her. - ikke number(space)+1
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 ?!?
Kan jeg ikke bare have variablen space i et controller MC hvor jeg så kalder den hver gang? det prøver jeg lige...
Synes godt om
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...
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)
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?
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
Synes godt om
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.
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)
Synes godt om
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.
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)
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
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)
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
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.