Gå til innhold

[Løst]Actionscript: hente variabel fra funksjon?


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet
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 ;)

Skrevet (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 av praystation
Skrevet (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 av Haraldson
Skrevet

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 :D

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...