Хорошо, так что, честно говоря, мне удалось решить это самостоятельно, выполнив:
public function loadStringBinding(aIdentifier:String, aField:UIComponent, aProperty:String, aAddtlChars:String = null):Function
{
return function():void {
var str:String;
if(aAddtlChars)
{
str = aAddtlChars;
}
else
{
str = '';
}
if(_localePacks.get(currentLocale))
{
if(XML(_localePacks.get(currentLocale)).translatedString.(@identifier==aIdentifier).@translation.toString().length > 0)
{
aField[aProperty] = XML(_localePacks.get(currentLocale)).translatedString.(@identifier==aIdentifier).@translation + str;
return;
}
else
{
aField[aProperty] = aIdentifier + str;
return;
}
}
else
{
//TODO: Replace with webservice call to get individual string
}
aField[aProperty] = 'No locale pack' + str;
return;
}
}
Что это делает, так это возвращает функцию, с которой она связана, так что я могу передать ее любому компоненту, с которым я хочу, чтобы свойство связывалось. Это реализовано как:
_currentWatchers.addItem(BindingUtils.bindSetter(LocaleManager.instance().loadStringBinding('firstName, myCFormItem, 'label', '*'), LocaleManager.instance(), 'newLocale'));
Я уверен, что это на самом деле не имеет смысла для тех, кто видит, поскольку остальной части кода здесь нет, и он немного связан с приложением, но просто знаю, что решение состоит в том, что функция bindSetter принимает funciton в качестве первого параметра, поэтому я создал функцию, которая создает функцию, которая выполняет связывание, которое я хотел. Если это имеет смысл для кого-то еще .. круто! Спасибо всем, кто внес свой вклад!