У вас есть разные способы достичь того, что вы хотите:
1- Вы можете добавить в свой класс MenuItem поле, в котором будет находиться нужное вам определение
public class MenuItem {
//...
public var definition:String;
//...
}
//...
function createMenu():void {
//This will be used to represent a menu item
var menuItem:MenuItem
//Counter
var i:uint = 0;
//Loop through the links found in the XML file
for each (var link:XML in xmlData.alphabet.term) {
menuItem = new MenuItem();
//Insert the menu text (link.@name reads the link's "name" attribute)
menuItem.menuLabel.text = link.@heading;
menuItem.definition = link.@definition;
//...
}
}
//...
function mouseDownHandler(e:Event):void
{
var mi:MenuItem=e.currentTarget as MenuItem;
if (mi!==null)
trace(mi.definition);
}
2 - используйте словарь , который сопоставит заголовок с определением:
//...
import flash.utils.Dictionary;
//...
var maps:Dictionary=new Dictionary(true);
//...
function createMenu():void {
//This will be used to represent a menu item
var menuItem:MenuItem
//Counter
var i:uint = 0;
//Loop through the links found in the XML file
for each (var link:XML in xmlData.alphabet.term) {
menuItem = new MenuItem();
//Insert the menu text (link.@name reads the link's "name" attribute)
menuItem.menuLabel.text = link.@heading;
maps[menuItem]=link.@definition.toString();
//...
}
}
//...
function mouseDownHandler(e:Event):void
{
var mi:MenuItem=e.currentTarget as MenuItem;
if (mi!==null)
trace( maps[mi] );
}
3 - Использование поиска e4x для поиска правильного определения по текстовой метке
//...
function mouseDownHandler(e:Event):void
{
var mi:MenuItem=e.currentTarget as MenuItem;
if (mi!==null) {
var heading:String=mi.menuLabel.text;
trace( xmlData.alphabet.term.(@heading.toString()==heading).@definition);
}
}