Gå til innhold

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


Anbefalte innlegg

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
Videoannonse
Annonse
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

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
Lenke til kommentar

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
Lenke til kommentar

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å
×
×
  • Opprett ny...