praystation Skrevet 28. mai 2009 Del Skrevet 28. mai 2009 Trenger noen kloke hoder som kan hjelpe meg med et lite AS3 script: Kort fortalt har jeg laget et Timer Event som skal registrere punkter i en x-akse som er i bevegelse. Når man kommer til et bestemt punkt skal den utføre en handling. Alt detter greit og fungerer, men jeg trenger å få hentet ut punktets variabel fra funksjonen: //Timer Event coordTimer = new Timer(50); coordTimer.addEventListener(TimerEvent.TIMER, getCoords); coordTimer.start(); //getChoords funksjon function getCoords (event:TimerEvent) :void { var coordinate=int(pano.pan); //Angir hvor punktet er if (coordinate < -100 && coordinate > -110) { spotObject.visible=1; } } Spørsmålet mitt er altså: Hvordan henter jeg ut "Coordinate"-variabelen slik at jeg kan bruke den senere i programmet? Slik den står nå er det en lokal variabel som kun gjelder inne i funksjonen. Hvordan gjør jeg den global? Lenke til kommentar
TeisL Skrevet 28. mai 2009 Del Skrevet 28. mai 2009 Trenger noen kloke hoder som kan hjelpe meg med et lite AS3 script:Kort fortalt har jeg laget et Timer Event som skal registrere punkter i en x-akse som er i bevegelse. Når man kommer til et bestemt punkt skal den utføre en handling. Alt detter greit og fungerer, men jeg trenger å få hentet ut punktets variabel fra funksjonen: //Timer Event coordTimer = new Timer(50); coordTimer.addEventListener(TimerEvent.TIMER, getCoords); coordTimer.start(); //getChoords funksjon function getCoords (event:TimerEvent) :void { var coordinate=int(pano.pan); //Angir hvor punktet er if (coordinate < -100 && coordinate > -110) { spotObject.visible=1; } } Spørsmålet mitt er altså: Hvordan henter jeg ut "Coordinate"-variabelen slik at jeg kan bruke den senere i programmet? Slik den står nå er det en lokal variabel som kun gjelder inne i funksjonen. Hvordan gjør jeg den global? Hei, jeg har ikke noe spesiell erfaring med AS3, men har programmert mye java og andre språk. Så generelt sett, så ville jeg gjort følgende: var coordinate; //getChoords funksjon function getCoords (event:TimerEvent) :void { coordinate=int(pano.pan); //Angir hvor punktet er if (coordinate < -100 && coordinate > -110) { spotObject.visible=1; } } Der har jeg bare flyttet variabelen og initialisert den utenfor funksjonen. Nå skal du kunne bruke denne variabelen i andre funksjoner i samme kodefil tenker jeg. Lykke til Lenke til kommentar
praystation Skrevet 28. mai 2009 Forfatter Del Skrevet 28. mai 2009 (endret) Takk for forslaget. Har dessverre prøv dette, men når jeg sjekker innholdet i variabelen etter at funksjonen er kjørt, får jeg beskjed om at den er tom...Skjønner ikke hvorfor trace(coordinate); //Står at den er undefined Endret 28. mai 2009 av praystation Lenke til kommentar
Haraldson Skrevet 28. mai 2009 Del Skrevet 28. mai 2009 (endret) Jeg har også et forslag, ikke fundert i mine fraværende AS3-kunnskaper, men med bakgrunn i JS og dets vanskelige variabelscope. Det er ikke sikkert forslaget fungerer eller har noe for seg, men du kan jo prøve; var self = this; this.coordinate; //getChoords funksjon function getCoords (event:TimerEvent) :void { self.coordinate=int(pano.pan); //Angir hvor punktet er if (self.coordinate < -100 && self.coordinate > -110) { spotObject.visible=1; } } Endret 28. mai 2009 av Haraldson Lenke til kommentar
praystation Skrevet 28. mai 2009 Forfatter Del Skrevet 28. mai 2009 Fant feilen selv. AS3 som er alt for finfølende for detaljer. Hadde ikke skrevet hvilken type variabel det skulle være. Når jeg gjorde det fungerte det. var coordinate:Number; Uansett, takk for hjelpen folkens Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå