объявление 1) labelFunction
Вызов функций, когда вы знаете только имя как String, довольно прост. В следующих фрагментах показано, как выполнить функцию, которая является членом того же класса. Если вам нужно вызвать функцию из другого класса, замените this
на соответствующее имя переменной.
private function comboBox_labelFunction(item:Object):String
{
var functionName:String = myXml.@labelFunctionName;
return this[functionName](item);
}
объявление 2) labelField
Обычно невозможно использовать "person.firstName" в качестве labelField. Тем не менее, вы должны иметь возможность использовать его в своей функции labelFunction. Как-то так должно работать ...
private function comboBox_labelFunction(item:Object):String
{
var labelField:String = "person.firstName";
var attributeNames:Array = labelField.split(".");
for each (var attributeName:String in attributeNames)
{
if (item && item.hasOwnProperty(attributeName))
item = item[attributeName];
else
return null;
}
return item;
}