для одного класса, только второй из вариантов

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
public class Main extends Sprite
{
private var data:XML =
<data>
<category1>
<iteam1 name="name" data="data"></iteam1>
<iteam2 name="name" data="data"></iteam2>
</category1>
<category2>
<iteam1 name="name" data="data"></iteam1>
<iteam2 name="name" data="data"></iteam2>
</category2>
</data>;
public function Main():void
{
var count:int = 0;
for each (var category:XML in data.*)
{
// создаем поля с имененм категорий
var field:TextField = createField(category.name().toString());
field.y = 30 * count++;
field.addEventListener(MouseEvent.CLICK, field_click);
addChild(field);
}
}
private function field_click(e:MouseEvent):void
{
// выдергиваем данные из XMl по имени
var field:TextField = e.currentTarget as TextField;
var fieldData:XML = data.child(field.text)[0];
trace("fieldData : " + fieldData);
}
private function createField(str:String):TextField
{
var res:TextField = new TextField();
res.width = 60;
res.height = 20;
res.border = true;
res.selectable = false;
res.text = str;
return res;
}
}
}