Все элементы управления предоставляют для обработки только одно событие - изменение состояния. Оно наступает, когда пользователь включает или отключает флажок, выбирает пункт списка или нажимает кнопку. Функция, обрабатывающая это событие, может выполнять самые разные действия: изменять доступность других элементов управления, изменять их значения или запускать какие-либо действия.
Существует два пути, чтобы присвоить этому событию обработчик. Во-первых, вы можете присвоить имя функции-обработчика параметру Change Handler (у кнопки pushButton этот параметр называется Click Handler) в среде Flash. Сделать это можно либо в редакторе свойств, либо в панели Component Parameters. Во-вторых, вы можете сделать это в сценарии, воспользовавшись
методом setChangeHandler(у кнопки PushButton - setClickHandler).
<Компонент>.setHandler(<Функция>[, <Путь функции>]);
Первым параметром этого метода передается имя функции-обработчика события в строковом виде. Вторым параметром может передаваться путь к этой функции, точнее, к клипу, где она объявлена. Если второй параметр пропущен, подразумевается, что эта функция объявлена в текущем клипе.
Функция-обработчик события должна принимать один параметр - ссылку на элемент управления, в котором произошло это событие. Это значит, что вы можете написать одну-единственную функцию, которая будет обрабатывать события, происходящие сразу в нескольких элементах управления. Чтобы выяснить, где именно произошло событие, вы можете проверять свойство _name объекта movieciip, возвращающее имя клипа:
function onClick(control) {
if (control._name == "chkSendMeEMail") {
_root.txtEAddress.setEnabled(_root.chkSendMaEMail.getValue());
} else {
if (control.__name == "chkICQ") {
_root.txtICQ.setEnabled(_root.chklCQ.getValue());
}
}
}
_root.chkSendMeEMail.setChangeHandler("onClick");
_root.chkICQ.setChangeHandler("onClick");