Сбой привязки Flex 3.5, если пункт назначения начинается с «результата»

Что ж, каким бы странным ни казалось название, следующее приложение не работает должным образом во Flex3.5:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:TextInput id='ti'/>
    <mx:Text id='result' text="{ti.text}"/>
</mx:Application>

В ответ на комментарий и для большей ясности в вопросе: здесь механизм привязки не обновляет текст result при вводе ti.


person catholicon    schedule 22.03.2013    source источник
comment
Что именно не получается?   -  person benzonico    schedule 22.03.2013
comment
Привязка не работает. Текст никогда не обновляется. Я уже знаю ответ, но я хотел опубликовать вопрос, чтобы спасти еще одну беднягу.   -  person catholicon    schedule 22.03.2013


Ответы (1)


После дня отладки и тщательного изучения сгенерированного сценария действия было обнаружено, что проблема связана с именем элемента Text. Переименование во что-то другое работает. Я знаю, почему это не удалось после просмотра сгенерированного кода — сгенерированный код имеет внутреннюю переменную «результат», которая конфликтует с именем назначения здесь. Итак, это работает. Уведомление result1

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:TextInput id='ti'/>
    <mx:Text id='result1' text="{ti.text}"/>
</mx:Application>

Причина моего сообщения в том, что я хочу, чтобы кто-то еще, кто столкнулся с этим испорченным поведением, нашел что-то полезное в Google!

У меня тоже есть вопрос. Я попробовал то же самое с Flex 4, и это не привело к той же ошибке. Flex 4 также сгенерировал код с именем внутренней переменной 'result', но, к счастью, конфликта удалось избежать, так как для destFunction в конструкторе Binding было задано значение null. OTOH, во Flex3.5 ему передается анонимная функция, которая выполняет фактическое назначение result.text=value, что приводит к путанице для компилятора. Мой вопрос в том, могу ли я убедить Flex4 создать аналогичную анонимную функцию (и, следовательно, иметь ту же ошибку)?

person catholicon    schedule 22.03.2013