Archief - FLASH: variabelen verliezen waarde tijdens event

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

passero

Legacy Member
Ik ben net bezig met AS en wou een klasse schrijven waar je makkelijk Tweens kon bijhouden afspelen.
Dit is een stuk van de klasse ik maak:

Code:
var sequence:Array = new Array();
	 var currentTween:Number = 0;
	 var completedTweens:Number = 0;
	
	public function addTween(step:Number,aTween:Tween)
	{
		aTween.stop();
		aTween.onMotionFinished = callNextTween;
		if(sequence[step] == undefined){ sequence[step] = new Array();}
		sequence[step].push(aTween);
	}

en dan dit is de methode die het event opvangt:
Code:
public function callNextTween()
	{
		completedTweens += 1;
		trace(completedTweens);
		trace(currentTween);
		trace(sequence.length);
		trace(sequence[currentTween].length);
		if(currentTween <= sequence.length && completedTweens == sequence[currentTween].length-1)
		{
			currentTween +=1;
			completedTweens = 0;
			playSequence(1);
		}
	}

blijkbaar wanneer ik de trace bekijk krijg ik dit als resultaat:

NaN
undefined
undefined
undefined

hij verliest dus zijn waarde...
hoe komt dit? Is dat doordat het eigenlijk een event is?
Wat moet ik dan doen om het te doen werken?

Strangler

Legacy Member
Uw variabelen aan het begin van uw script declareren?

passero

Legacy Member
die variabelen zijn wel gebonden aan de instantie en niet aan het volledige script.
De bedoeling is da ge meerdere instanties kunt krijgen van die klasse in 1 animatie hé... het is geen singleton

passero

Legacy Member
rar file gemaakt.
http://www.yonaweb.be/flash/flash.rar

code.fla is de fla file... daar zit enkel maar een tekstlabel in.
De code die de animatie maakt zit in code.as en de klasse is
TweenSequence.as
In die klasse is het em dus te doen.

In code.as staan onderaan ook de gewone functies die je in TweenSequence.as vind. Momenteel staan ze in commentaar maar als je ze normaal zet en overal in de code waar sequence.addTween(...) staat doe je de sequence. weg, dan werkt het zoals het moet zijn.
De vars die in de klasse staan, staan ook in code.as maar net zoals de functies, ook in comment.

Strangler

Legacy Member
Die NaN heb ik al gevonden:

Jij doet: += 1, en het moet =+1 zijn als je 1 wilt optellen.

Dat is alles wat ik vond voorlopig

passero

Legacy Member
kan ik daarvoor het observer pattern nie gebruiken?
Een extra klasse waarin ik die variabelen opsla en als het event gebeurd gaat hij die vars uit die klasse halen of zo iets :)

Breen

Legacy Member
Strangler zei:
Die NaN heb ik al gevonden:

Jij doet: += 1, en het moet =+1 zijn als je 1 wilt optellen.

Dat is alles wat ik vond voorlopig

Het is weldegelijk +=1 en niet =+1

Strangler

Legacy Member
waarom krijg ik dan als ik =+1 doe, wel een waarde, en anders een NaN?

Jellepunk

Legacy Member
Strangler zei:
waarom krijg ik dan als ik =+1 doe, wel een waarde, en anders een NaN?

is je variable al geinisaliseerd? als je een varible optelt met zichzelf en ze is niet geinisaliseerd, dan krijgde niets.

bij =+1

stel je gewoon je var gelijk aan '+1'

kdenk dat daar je probleem zit

Breen

Legacy Member
Ja natuurlijk, als je gewoon 1 wilt, dan zal =+1 wel werken, als je dus wedegelijk de huidige waarde van de variabele +1 wilt doen, dan is het +=1
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan