Avatar billede jakwag Nybegynder
27. juli 2003 - 14:19 Der er 8 kommentarer og
1 løsning

listener til mouse

hej

Jeg kunne godt tænke mig at man i en hel tom swf, kunne trykke et hvilket so helst sted og så reagerede flash.

Jeg har prøvet med:

myListener = new Object();
myListener.onMouseDown = function() {
    trace("h")
};
Mouse.addListener(myListener);

Men det virker ikke.
Jeg vil gerne opnå det samme som hvis man bruger onClipEvent(mouseDown) på et tomt moviclip, men jeg vil gerne holde mit dcript i en frame.

Hvad gør jeg?
Hvad er i øvrigt den normale anvendelse af listeners? Jeg har aldrig rigtig brugt den til noget.

: ) Jakob
Avatar billede _k Nybegynder
27. juli 2003 - 14:25 #1
this.onMouseDown = function() {
    trace("h");
}

Ser selv listeners som et forsøg på at gøre det nemmere for folk der kommer fra de lidt tungere programmeringssprog. I f.eks. Java er det den mest almindelige måde at skabe interaktivitet på. I Flash er det i mine øjne nemmere og mere intuitivt at anvende onClipEvents eller bare knapper!
Avatar billede jakwag Nybegynder
27. juli 2003 - 14:29 #2
Som du skriver var det første jeg prøvede.
Men det virker ikke.

Jeg tænkte godt at listeners som regel ikke er nødvendige. Der er selvfølgelig Stage listenersne, dem kan man vel ikke omgås.

Dette er taget direkte ud af help:

someListener = new Object();
someListener.onMouseDown = function () { ... };
Mouse.addListener(someListener);

Det burde da være præcis det samme som det jeg lige har skrevet.

???
Avatar billede jakwag Nybegynder
27. juli 2003 - 14:31 #3
JO! nu virker det pludselig??? Gad vide hvad jeg gjorde forkert første gang...
Avatar billede jakwag Nybegynder
27. juli 2003 - 14:33 #4
Det var sært:

myListener = new Object();
myListener.onMouseDown = function() {
    trace("h")
};
Mouse.addListener(myListener);

Virker osse fint nu. Bare i en anden film, men ligeså tom som den første bare copi/pastet???
Avatar billede _k Nybegynder
27. juli 2003 - 14:35 #5
Takker for point :o)

Kan heller ikke umiddelbart se hvad der skulle være galt med den kode du selv fyrede af. Men mon ikke det har noget at gøre med, at du mangler direkte at initiere din listener?
Avatar billede jakwag Nybegynder
27. juli 2003 - 14:40 #6
næ.. Men tak for hjælpen.

De to film er præcis ens. De indeholder intet andet en præcis den samme kode. Men den ene virker, den anden gør ikke.

Men lad det ligge, bare sært.
Avatar billede barklund Nybegynder
27. juli 2003 - 15:47 #7
Listeners er nu gode nok. Dog er de predifinere på Mouse og Key lidt uanvendelige, da de også findes som clipEvents, men der er jo også listeners på TextField, Selection og Stage, som ikke lige kan laves på anden vis... Det tillader modsat events, at flere uafhængige ting sker som konsekvens af en enkel aktion. Man kan selv sætte sine egne listeners op med ASBroadCaster, der faktisk er meget lækker:

http://chattyfig.figleaf.com/flashcoders-wiki/index.php?AsBroadcaster
Avatar billede jakwag Nybegynder
27. juli 2003 - 16:00 #8
barklund> det ser spændende ud. Jeg har ikke helt fundet ud af hvordan de bruger det på dit link, men så har jeg noget nyt at lære.

De predefinerede på Mouse og Key er da meget gode. Man kan jo ikke bruge clipEvents i en frame. Eller...
Avatar billede barklund Nybegynder
27. juli 2003 - 16:35 #9
Du kan bruge clipEvent på alle tidslinier... Men hvis man nu vil have at et bestemt objekt også skal abbonnere på en clipEvent, så skal det gøres med en listener...
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