Hej,
jeg har et problem at jeg ikke kan få fat i den variabel fra en custom class jeg har lavet ud fra Bjelds tutorial om "Custom Events i AS3".
Jeg kan få fat i min variabel i min custom class, men har problemer med, at få det ud når jeg laver min addEventListener.
I klassen "VideoPlayerControls" prøver jeg at få fat i variablen:
1 2 3 4 5 6 7 8 9 10 11 | public function VideoPlayerControls() { Init(); } public function Init():void{ addEventListener(NSEvent.NS_VIDEO, handleNSVideo); } private function handleNSVideo(e:NSEvent):void{ trace(e.getNSVideo()); } |
Hvad gør jeg galt?
Sig endelig til, hvis der behøves mere info.
9 kommentarer
Har du prøvet at caste din event ? Den kan ikke nødvendigvis genkende metoden, på den måde du gør tingene.
At caste betyder, at du forsøger at lave et objekt om til et andet objekt.
Fx
NavnetPåKlasseSomSkalCastesTil(e.target).getNSVideo();
Da eventet bærer på en reference til det objekt som har dispatched din event, så kan du caste eventobjektet til den klasse det er
instattieret ud fra, og får derved adgang til de medfølgende metoder.
Hej Pelle,
tak for dit svar.
Jeg har nu gjort følgende i min klasse "VideoPlayerControls":
Det er fra "NSEvent" klassen at der bliver returneret en variabel i funktionen getNSVideo().
Kan du se, hvad jeg gør galt?
Hvis argumentet i metodekaldet er af typen NSEvent, så burde casting ikke være nødvendig.
Men det kan være vi kan uddybe lidt.
1. Prøv at vise os .getNSVideo() Vil gerne se hvad den returnerer.
2. Hvor bliver din event dispatched, og bliver der overhovedet traced noget ?
3. Har du bliver eventet dispatched fra samme klasse som du fanger den i?
Her er en uddybning af koden.
I klassen "NSEvent":
Mit event bliver dispatched fra klassen "FullScreenVideo":
Her sender jeg en variabel der hedder ns
Jeg dispatcher som sagt eventet fra klassen "FullScreenVideo" og prøver at få fat i en værdi i klassen "VideoPlayerControls".
Giver det mening?
Ja nogenlunde ...
Er du sikker på, at du kan trace en NetStream ? Så vidt jeg kan se, så returnerer getNSVideo en NetStream of ikke en String som du kan udskrive på den måde du forsøger.
Jeg forsøger på at trace [object NetStream], så jeg kan bruge det videre i min kode. Det kan måske ikke lade sig gøre på den måde?
Det er egentlig bare, så jeg kan komme udenom at bruge Singleton fordi det synes jeg i forvejen jeg bruger lidt for meget i mit projekt.
Jeg tror ikke umiddelbart, at du kan gøre det på den måde. du kan nok godt referere til objektet, men jeg tror ikke du vil kunne anvende trace til at fortælle sig noget konkret om objektet. I så fald skal du nok vælge en property for at få noget brugbart.
Hej Pelle,
nu har jeg forsøgt lidt forskellige udveje til det jeg gerne vil frem til uden held, så jeg tror heller ikke, at jeg kan gøre det på den måde.
Det jeg prøver på er, at kunne styre et NetStream som kommer fra min FullScreenVideo klasse via en klasse jeg selv har lavet, hvor pause, stop osv. bliver sat på NetStreamet - derfor jeg prøver at få "ns" videre til en anden klasse.
Hvilken metode vil være bedst at bruge i dette tilfælde?
Kunne du vise os klassen NSEvent?