---
title: "XML for loop MouseEvent"
type: "forum-thread"
url: "https://www.webforum.nu/amne/flash/184581-xml-for-loop-mouseevent"
topic: "Flash"
topic_url: "https://www.webforum.nu/amne/flash"
author: "krokodilen"
published: "2010-09-09T21:26:23.000Z"
updated: "2010-09-10T10:25:27.000Z"
replies: 6
views: 582
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/flash/184581-xml-for-loop-mouseevent"
---

# XML for loop MouseEvent

## #1 — krokodilen, 2010-09-09T21:26Z

Jag laddar in knappar i en holder, och antalet knappar samt "knapptext" styrs via xml. Men hur kan jag hämta en variabel från en specifik knapp som tex vilket nummer (myNum) det är på knappen man klickat på, via MouseEvent?

Har provat med "target", men utan framgång. Hade varit lysande om någon kunde hjälpa en vilsen själ på rätt väg :) 

Här kommer ett utsnitt med den berörda koden:

```
function urlLoaded(e:Event):void {
	xml = XML(e.target.data);
	xmlList = xml.children();
	//trace(xmlList.length());
	
	
var i:int;
	
	for (i=0; i<xmlList.length(); i++) {
	
		var btn:nameBtn = new nameBtn(xmlList[i].nameStr);
		arrayBtn.push(btn);
		arrayBtn.myNum = i;
		arrayBtn[i].y = i*22;
		arrayBtn[i].x = 0;
		btnContainer.addChild(btn);
		var nameXML:String = xmlList[i].name;
		nameXML = nameXML.toUpperCase();
		arrayBtn[i].name_txt.text = nameXML;
		arrayBtn[i].addEventListener(MouseEvent.CLICK, btnClick);

		
		function btnClick(e:MouseEvent):void {
			trace(???.myNum);
		}
	}
}
```

Har gjort detta tidigare i AS2 utan problem, och då skrev man bara 

```
trace(this.myNum);
```

Permalänk: https://www.webforum.nu/p/184581

## #2 — SoloSquad, 2010-09-10T06:46Z

Du är helt på rätt spår! Med target.name får du fram namnet på ditt objekt som en sträng. Sannolikt vill du också sätta det när du itererar genom XML-innehållet. Flash kommer annars döpa objektet till 'instance\[x\]'.

Permalänk: https://www.webforum.nu/p/2250853

## #3 — krokodilen, 2010-09-10T07:21Z

Ok, gott att veta att man är på rätt väg, tack för svar! :)
Precis, när jag nu provar med "e.target.name" får jag fram precis som du säger, "instance\[x\]". Men hur menar du att jag utveckla detta så jag kan få fram tex "myNum" från just den aktuella knappen? 
Tacksam för svar :)

Permalänk: https://www.webforum.nu/p/2250856

## #4 — SoloSquad, 2010-09-10T08:20Z

arrayBtn.name = 'myNum' + ;

Ger objekten namnet 'myNum1', 'myNum2' osv.

Permalänk: https://www.webforum.nu/p/2250859

## #5 — krokodilen, 2010-09-10T08:45Z

Hmm, underligt. Trace'ar fortfarande "instance\[x\]". Vad kan vara fel?

Permalänk: https://www.webforum.nu/p/2250861

## #6 — SoloSquad, 2010-09-10T09:08Z

Prova att i stället använda currentTarget. Det kan vara ett annat objekt i din knapp som fångar händelsen.

e.currentTarget.name

Permalänk: https://www.webforum.nu/p/2250865

## #7 — krokodilen, 2010-09-10T10:25Z

Nu så! Tackar så ödmjukast :)

Permalänk: https://www.webforum.nu/p/2250874

---

Tråden på webben: https://www.webforum.nu/amne/flash/184581-xml-for-loop-mouseevent
