webForumDet fria alternativet

Funktion inuti loop visar bara sista valuen

Flash

1 svar · 240 visningar · startad av KalleWarrior

Medlem sedan mars 200618 inlägg
Frågan#1

Ja, kort sagt så har jag en funktion som hämtar ut nodeValues från ett xml-dokument, i denna funktion finns en for-loop (i < childNodes.lenght) som skriver in dessa values i dynamsikt skapade movieclips med textfält.

Nu är det så att detta är en sorts meny, och klickar man på ett alternativ ska information från xml-dokumentet visas i ett movieclip/textfält intill menyn. Så jag har en onRelease-funktion till varje omgång i for-loopen. Men så stötte jag på detta problem med att när jag tracar aktuell variabel (hämtad från xml) så skriver den bara ut valuen från sista loop-omgången vilken av mina movieclips jag än klickar på. Och efter att ha sökt lite har jag upptäckt att detta är ett vanligt problem och jag förstår varför det blir som det blir. Jag hittade också lite lösningar, men jag lyckas inte implementera dessa lösningar i min kod :/ Så det var det jag tänkte att nån kanske kunde hjälpa mig med?

Här är sidor med olika lösningar:
http://www.senocular.com/flash/tutorials/faq/#loopfunctions
http://www.flashdevils.com/showthread.php?s=&postid=177141
http://www.ozzu.com/ftopic72576.html

Min funktion som den ser ut nu:

mc_holder["app"+i].onRelease = function (){
	
	    trace (appDesc); [blue]//tracar bara appDesc's värde från senaste loop-omgången[/blue]
	   
		}

Om nån tror sig kunna lösa det men behöver hela koden så säg till.

Medlem sedan maj 2003750 inlägg
#2

Funkar inte följande?

mc_holder["app"+i].appDesc = appDesc;
mc_holder["app"+i].onRelease = function ()
{
	    trace (this.appDesc); //tracar bara appDesc's värde från senaste loop-omgången
}

/Mirandir

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)