Бесплатно скачать Adobe Flash Player

Как отбиндить переменную во Flex

Недавно Андрей Микитюк задал мне простой вопрос — как отменить биндинг переменной во Flex? Честно говоря, я не смог ему ответить, зато он сам нашел готовый ответ в блоге одного из индийских Flex-евангелистов Raghunath Rao Thricovil, или просто — Raghu.

Тем, кто еще не в курсе, напомню: связывание, или биндинг данных (data binding) — одна из мощных фишек Флекса. Фишка в том, что переменная a связывается с переменной b и после этого значение a будет изменяться каждый раз, когда изменится значение b — они связаны (binded). Один из простейших примеров — текст, вводимый в поле ввода, автоматически появляется в другом месте приложения при вводе / удалении каждого нового символа. При грамотном применении биндинг позволяет сэкономить кучу кода и времени. Для начинающих (и не только) есть пара коротких уроков по биндингу — очень рекомендую.

А как отменить связывание переменнных?

Оказывается, отменить биндинг довольно просто в AS3 и невозможно в MXML. В AS3 это делается при создании биндинга стандартным образом с помощью метода bindProperty. Этот метод возвращает объект типа ChangeWatcher, который может "наблюдать" (watch) за самим связыванием, реагируя каждый раз при изменении переменной b. Чтобы разорвать связывание, достаточно вызвать на этом объекте-смотрителе метод unwatch(). Вот как это все выглядит в коде, а вот — как это работает.

Вообще, у Raghu весьма полезный блог.

Писал: Rost, 28 Июль 2008 22:01

Комментарии:

Дата байндинг, Рост. ;-)

Бармалей - 28 Июль 2008 22:34

В принципе действительно "байндинг", но это совсем ужасно читается/произносится в русской речи. Также ужасно, когда человек говорит компайлер, вместо компилер/компилятор.

Например, все знакомые .NET-разработчики говорят именно датабинд. То есть, это уже можно считать термином, который произносится как бинд, и это не есть слово английского языка байнд :), это именно термин в нашем языке (украинском,беларусском,русском).

Alexey - 28 Июль 2008 22:53

Да нормально это читается/произносится. Нужно просто пару дней поделать это правильно. =)

Бармалей - 29 Июль 2008 9:22

оффтоп: первые инструменты от aviary стали уже доступны, а ещё никто ничего не написал...

- 29 Июль 2008 10:12

Да-да. Помню, где-то у меня во фреймворке лежал этот класс, который я портировал на свою IDE

Jloa - 29 Июль 2008 14:00

оффтоп: первые инструменты от aviary стали уже доступны, а ещё никто ничего не написал...

Да мы пишем, пишем. Только не обо всем сразу :)

Рост - 29 Июль 2008 14:27

То есть, это уже можно считать термином, который произносится как бинд, и это не есть слово английского языка байнд :)

До тех пор пока не начнёшь общаться с американскими коллегами :)

Кстати, к своему стыду я таки произносил как "бинд". Теперь не уверен, что американцы меня поняли :(

Dan - 30 Июль 2008 16:33



Подписаться на новости (RSS)




Примечания:
Статус документа
: в процессе
   2002-2009 Производство: Ростислав Сирык · О проекте · Подписка на новости (RSS)