XML Loop - onRelease-Problem

oaki

Erfahrenes Mitglied
Hi zusammen!

Ich habe folgendes Problem. Ich will für jeden XML Eintrag einen Button erstellen der dann eine Funktion aufruft plus eine Variable übergibt. Diese Variable ist i, und gibt darüber Bescheid, auf welcher XML Eintrag es ist (0,1,2 etc.)

Ich kann nun leider nicht auf die Varible zugreifen! Mir ist klar das es daran liegt das die Variable ausserhalb der onRelease Funktion steht, aber ich habs einfach immer noch nicht geschafft diese Var anzusprechen. Hat jemand einen Vorschlag?

Vielen Dank!

Code:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		var thumbnail:Array = [];
		var image:Array = [];
		var imagetitle:Array = [];
		var description:Array = [];
		var currentnodeIndex:Array = [];
		var total:Number = xmlNode.childNodes.length;
		for (i = 0; i < total; i++) {
			var thumblength:Number = 50;
			var gap:Number = 10;
			var newX:Number = i * thumblength + 10;
			trace("NewX " + newX);
			thumbnail[i] = xmlNode.childNodes[i].attributes.thumbnail;
			imagetitle[i] = xmlNode.childNodes[i].attributes.title;
			currentnodeIndex[i] = i;
			trace("currentnodeINDEX= " + currentnodeIndex[i]);
			newsContainer.attachMovie("thumbnail", "thumb" + i, newsContainer.getNextHighestDepth(), {_x:newX});
			newsContainer["thumb" + i].onRelease = function() {
				trace("Variable equals " + i)
			};
			// do something
		}
	} else {
		content = "file not loaded!";
	}
}
 
Hallo,

in der Schlaufe speicherst du die gewünschte Variable als Member des attachten MovieClips durch das initObject, dass du ja bereits benützst. Dann kannst du auch entsprechend darauf zugreifen:

Code:
for (var i = 0; i< x; i++) {
    this.attachMovie("meineID", "meinMovieClip", i, {i: i});
    meinMovieClip.onRelease = function () {
        trace (this.i);
    }
}

gruss
 
Zurück