Du kan gøre det på flere måder, men den jeg selv finder mest driftsikker, er at lave en knap, og smide scriptet direkte på den (knappen kan sagtens ligge off stage):
on(keyPress "<Enter>") { trace("run function") }
En onPress metode på et mc burde også virke....
Hvis du har oplevet problemer med at teste lige præcis enter-knappen, kan det skyldes at dit testenvironment er sat op til at enter også skal afspille tidslinjen (altså en slags play) - test derfor altid i browser (eller projector)...
øhh, er foskellen ikke den samme? Du kan alligevel ikke sammenskrive scriptet for onRelease og on(keyPress "<Enter>"), så hvad gør det at scriptet for Entertryk ligger på en knap? - Hvis du vil kalde den samme kodesnip, kan du jo kylde den i en funktion:
function nuHarJegTrykket() { trace("hupla hey"); }
Det duer ikke at smide koden på en knap med mindre at det er absolut sidste udvej. Der må være en måde at skrive det som wolla_btn.onRelase = function(){ nuHarJegTrykket() }
...gerne sammenskrevet med den eksisterende funktion.
...det er bare bedre programmeringspraksis at lade Flash bruge sine egne funktioner til at definere sådanne listeners. På ovenstående facon, har vi en onEnterFrame til at stå at tikke hele tiden, og trække perfomance ned....
Hvor vanskelig var det lige du var? Hvorfor kan du hverken bruge en on-stage-knap eller en onEnterFrame listener? Du må ligge inde med et ekstremt komplekst problem, eller gribe noget an på en knap så smart måde!
Det eneste der er tilbage, er at lave en ægte listener, og det vil jeg ikke anbefale folk, som ikke har læst manualen til Actionscripting grundigt igennem....
nixen bixen! Det eneste du kan tjekke er om der er trykket en eller anden knap ned på keyboardet eller ej. Eller om der er sluppet en knap, efter den har været nede:
onKeyDown() er en property på et mc. Fra Flash MX betragtes knapper (delvist) som movieclips i ActionScripeditoren, derfor optræder onKeyDown() når du skriver mc'et/knappens navn.
Lider du normalt af paranoia, eller er et kun mig det tilfalder æren?
Problemet med denne er at knappen skal have fokus for at aktivitere koden.
Jeg har en form(textField), som gerne skal submittes(funktion skal køres) ved tryk på ENTER. Jeg kan ikke bruge en onEnterFrame-funktionen, og vil ikke have kode direkte på knapper, men mindre at dette er absolut den eneste måde at gøre det på.
Jeg havde håbet på noget ala dette:
search_btn.onRelease = search_btn.onKeyDown = function () { trace("wolla") }
...man kan altid bruge en onEnterFrame-funktion (også selvom filmen rent faktisk ikke kører på tidslinjen). Det er bare ikke altid lige programmeringsmæssigt tilrådeligt at gøre....
Ellers har du jo selv fundet svaret. Det du leder efter eksisterer ikke, så du må gøre som jeg har foreslået ovenfor, gi' op, eller selv finde en løsning som ikke engang Maromedia har fundet....
Jeg forstår stadigvæk ikke hvad der er problemet? Du kan jo bare smide en knap på scenen (eller bruge en du allerede har?), og kyle det lille bitte script fra toppen af dette spørgsmål på den. Så slipper du for onEnterFrame og kan lave en form der ikke bare ligner, men også opfører sig som html.
Husk at du jo bare kan kyle knappen off stage, hvis du ikke vil ha' at folk skal se den. Så er forskellen vel den samme?
Men du kan stadigvæk bruge this.onEnterFrame i en funktion på tidslinjen ;o)
tak for point!
Synes godt om
Ny brugerNybegynder
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.