Краткий ответ: ЭТО ЖУЛЬТКА В FLEX. Я сообщил об этом.
Это странно ... Если мы используем элемент управления Spark List, он даже не скомпилируется. Это говорит нам, что он не может конвертировать Array
в IList
. result
это, очевидно, переменная в каком-то месте, но где?
Итак, я посмотрел код, сгенерированный с использованием флага компилятора -keep-generate-actionscript = true.
Внутри файла ViewName-generate.as вы найдете интересный метод:
private function _ViewName_bindingsSetup():Array
{
var result:Array = [];
result[0] = new mx.binding.Binding(this,
function():Object
{
return (result);
},
null,
"_ViewName_List1.dataProvider"
);
return result;
}
Именно здесь объекты Binding превращаются в переменную result
.
Мы можем видеть в объекте привязки, что есть функция, которая возвращает (result)
. В любом другом случае это будет что-то вроде (results)
. НО, в этом случае, он возвращает локальный массив Binding
объектов. Вот почему this.result
работает. Это вытаскивает из местного разума!
Итак, это явно ошибка. Я отправил его в Adobe в следующем формате: https://bugs.adobe.com/jira/browse/FB-29870