03. juli 2003 - 13:28 Der er 8 kommentarer og
2 løsninger

MouseDown effekt virker ikke

Jeg ønsker at lave en knap som, når man holder højre musetast ned på, bliver ved med at gøre et eller andet. Jeg har forsøgt med nedstående kode på et MovieClip. Egentlig ville jeg havde brugt en Button, men den tillader ikke brug af onClipEvent og on(release) og on(press) bliver kun sendt engang. Problemet er nu at det jeg har lavet ikke virker. Der bliver kun skrevet "test" en gang, og ikke så længe jeg holder musetasten end. Hvor er logikken i det? Den er sikkert simpel, men jeg er også fhv. begynder i flash.


onClipEvent(mouseDown)
{
    trace("test");
}
Avatar billede thulstrup Nybegynder
03. juli 2003 - 13:34 #1
onClipEvent (load) {
    var nede = 0;
}
onClipEvent (enterFrame) {
    if (nede) {
        trace("test");
    }
}
onClipEvent (mouseDown) {
    nede = 1;
}
onClipEvent (mouseUp) {
    nede = 0;
}
Avatar billede thulstrup Nybegynder
03. juli 2003 - 13:35 #2
jeg går ud fra at du med 'højre musetast' mener venstre ;-)
Avatar billede docks Nybegynder
03. juli 2003 - 13:39 #3
Der skal vel også en form for hittest på eller en button inde i din MC for ellers kan du bare trykke hvor som helst på din scene og den vil stadig udføre din actions?!?
Avatar billede jakwag Nybegynder
03. juli 2003 - 13:39 #4
prøve at give knappen (som er et mc) et instance navn. Det kan du gøre i din property inspector.

Så skriver du dette skript i en frame: (lad os antage at du giver den instance navnet "knap_mc")

knap_mc.onPress = function(){
  this.onEnterFrame = function(){
      trace("test");
  }
}
knap_mc.onRelease = function(){
  delete this.onEnterFrame;
}

Det burde løse problemmet.

: ) Jakob
03. juli 2003 - 13:47 #5
cellb10ck> Det er så nemt i javascript, er det virkeligt så svært i Flash at man skal bruge fire events istedet for en?

docks>Ja, cellb10ck virker umiddelbart, men som du siger over hele skærmen, hvordan får man styr på det? Jeg har et instancename på en knap hvordan foretager jeg en hittest på den? Altså ved jeg ikke hvad en hittest er?
Avatar billede docks Nybegynder
03. juli 2003 - 13:52 #6
jagwag 's skulle virke perfekt. Men hvis du vil gøre som cellbl0ck viser så skal du inde i din MC have en Button som skal have flg. action:

on(Press}{
this.nede = true;
}

on(relese){
this.nede = false;
}


Og blot dette på din MC:

onClipEvent (enterFrame) {
    if (nede) {
        trace("test");
    }
}

Hittest tjekker om to objekter kolliderer dette gælder også din mus så derfor kan du også vælge at gøre følgende:

onClipEvent (load) {
    var nede = 0;
}
onClipEvent (enterFrame) {
    if (nede) {
        trace("test");
    }
}
onClipEvent (mouseDown) {
if(this.hittest(_xmouse,_ymouse,true)){
    nede = 1;
}
}
onClipEvent (mouseUp) {
    nede = 0;
}

Det skulle gøre tricket :D

Good luck
Avatar billede docks Nybegynder
03. juli 2003 - 13:53 #7
oppe i det første eksempel kan det godt være du skal skrive:

onClipEvent (enterFrame) {
    if (this.nede) {
        trace("test");
    }
}
03. juli 2003 - 14:01 #8
Jakwag får 30 for det bedste svar og docks får 30 for besværet, hvis du altså kommer med et svar. Tak for hjælpen alle! Jeg troede det var et kort og entydigt svar jeg fik, men det var det ikke så jeg satte pointtallet lidt op.
Avatar billede docks Nybegynder
03. juli 2003 - 14:04 #9
Mange tak :D
Avatar billede jakwag Nybegynder
03. juli 2003 - 14:13 #10
Tak.
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