Функция привязки данных Flex (не получатель) - PullRequest
2 голосов
/ 27 июля 2011

У меня есть приложение flex, которое зависит от класса, который немного абстрагирует flexManager. Класс (чистый AS3), который я использую, расширяет EventDispatcher и занимается загрузкой информации о локализации во время выполнения, а также возвращает переведенные токены. Я не могу использовать базовый resourceManager, так как не хочу, чтобы он возвращал ноль, если токен не найден.

/ endexposition

Моя проблема возникает, когда я пытаюсь сделать функцию getString привязываемой.

[Bindable(event="bundleLoaded")]
public function getString...

Событие bundleLoaded отправляется соответствующим образом. Эта функция работает правильно в 90% приложений, в разработке которых я участвую. Однако для ОДНОГО приложения я получаю следующую запутанную ошибку:

1084: синтаксическая ошибка: ожидание правой строки перед s. Ресурс = (ProjectName) Путь = (ноль) Расположение = строка 301

Приложение компилируется и работает (очевидно, за исключением привязок), прежде чем я добавлю строку [Bindable ...], но после добавления этой строки оно отказывается правильно компилироваться. В строке 301 любого из классов приложения или поддержки нет ничего даже слегка интересного.

Какие-нибудь советы? У кого-нибудь есть подобный опыт?

1 Ответ

0 голосов
/ 28 июля 2011

Что ж, после поиска в сгенерированном коде я обнаружил проблему (которая будет сообщать об ошибке в flex sdk).

Мой код связал свойство текста с ресурсом (для локализации).

В этом свойстве использовалась троичная операция.После того, как я создал эту привязку, сгенерированный код удалил ":" и "?"из моей троичной операции и вызвал ошибку.

    myResourceManager.getString('bundle','token',[numDays, numDays != 1 ? 's' : ''])

Компилятор превратил это в ...

    new mx.binding.FunctionReturnWatcher("getString", target, 
        function():Array 
        { return [ "bundle", "token", [target.numDays, target.numDays != 1"s"""] ]; }

Оставив меня с хорошей, неоднозначной ошибкой компилятора.Спасибо за внимание, ребята!Это исправлено.

РЕДАКТИРОВАТЬ: Если кому-то интересно: https://bugs.adobe.com/jira/browse/SDK-30937

...