Avatar billede thingholm.dk Nybegynder
09. januar 2004 - 14:02 Der er 21 kommentarer og
1 løsning

onRelease + onKeyDown

Hej,

Hvordan ændrer jeg denne til også at aktiveres når ENTER trykkes:

wolla_btn.onRelase = function(){
trace("run function")
}

VH

Anders
Avatar billede _k Nybegynder
09. januar 2004 - 19:39 #1
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)...
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 12:16 #2
Hej igen,

Ikke helt hvad jeg søger. Det skal være som beskrevet.

VH

Anders
Avatar billede _k Nybegynder
10. januar 2004 - 15:07 #3
ø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");
}

wolla_btn.onRelase = function(){
  nuHarJegTrykket()
}

...og på en knap:

on(keyPress "<Enter>") {
  nuHarJegTrykket()
}

Ellers må du lige uddybe hvad det præcis er du vil....
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 16:11 #4
Hej igen,

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.
Avatar billede _k Nybegynder
10. januar 2004 - 17:43 #5
10-4, hvis du VIL ha' det ;o)

this.onEnterFrame = function() {
    if(Key.isDown(Key.ENTER)) {
        nuHarJegTrykket()
    }
}

...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....
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 18:17 #6
Hej igen,

Jeg vil gerne have koden på main timeline.

VH

Anders
Avatar billede _k Nybegynder
10. januar 2004 - 19:45 #7
...ovenstående kode KAN kun placeres på tidslinjen....
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 19:49 #8
OK, men jeg kan ikke bruge en onEnterFrame til noget. Det må kunne laves med wolla_btn.onKeyDown()
Avatar billede _k Nybegynder
10. januar 2004 - 20:42 #9
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....
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 20:44 #10
Hvorfor kan man ikke bruge wolla_btn.onKeyDown() ?
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 20:44 #11
OG så tjekke hvilke knap der er "nede"
Avatar billede _k Nybegynder
10. januar 2004 - 20:53 #12
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:

mc.onKeyDown = function() {}
mc.onKeyUp = function() {}

Det betyder at nedenstående script principielt burde fungere, men i praksis er det noget hø!

mc.onKeyDown = function() {
  if(Key.isDown(Key.SPACE)) {
    trace("Hi");
  }
}

.... fatter stadigvæk ikke, hvofor det absolut skal se ud på en bestemt måde, når det metoder jeg har vist, rent praktisk fungerer????
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 20:59 #13
Hvad bruges wolla_btn.onKeyDown() så til? og hvordan bruges den?
Avatar billede _k Nybegynder
10. januar 2004 - 21:02 #14
Her vil jeg så opfordre dig til at læse hvad jeg skriver, eller trykke F1 inde i Flash. Så præsenterer svaret sig selv :o)
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 21:04 #15
onKeyDown() kommer frem som codeHint, når jeg skriver wolla_btn.

Dvs. at det intet har med MC's at gøre som du skriver.
Avatar billede _k Nybegynder
10. januar 2004 - 21:13 #16
Damn, og jeg som troede jeg kunne snyde dig!

Jeg burde også vide bedre end at bruge Macromedia som kilde:

http://livedocs.macromedia.com/flash/mx2004/main/12_as421.htm

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?
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 21:27 #17
Det jeg leder efter er noget ala denne:

http://livedocs.macromedia.com/flash/mx2004/main/12_asd94.htm

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")
}
Avatar billede _k Nybegynder
10. januar 2004 - 21:38 #18
...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....
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 21:50 #19
Hej igen,

OK, jeg gir op. Jeg havde håbet på at man kunne submitte en form, som i HTML uden at skulle bruge onEnterFrame funktioner.

Smider du et nyt svar?

VH

Anders
Avatar billede _k Nybegynder
10. januar 2004 - 21:58 #20
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?
Avatar billede thingholm.dk Nybegynder
10. januar 2004 - 22:01 #21
Det tilføjer et ekstra sted at holde styr på koden. Jeg har som udgangspunkt kun kode på selve timelinen.
Avatar billede _k Nybegynder
10. januar 2004 - 22:10 #22
..fair nok.

Men du kan stadigvæk bruge this.onEnterFrame i en funktion på tidslinjen ;o)

tak for point!
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