
Компонент Переключатель (Radio Button)
К
омпонент
переключатель похож на компонент Флажок
(Check Box) и
так же служит для выбора значений.
Отличительной особенностью этого
компонента является то, что как правило,
несколько его экземпляров объединяют
в группу и пользователь может выбрать
только один элемент из целой группы.
Параметры компонента
Параметр |
Значение |
groupName |
Имя группы, к которой относится экземпляр компонента. Если несколько переключателей имеют общее имя группы, то они считаются связанными, и между ними можно выбрать лишь единственное значение. Если у двух переключателей разные имена групп, то они независимы друг от друга. Значение свойство по умолчанию — RadioButtonGroup |
label |
Строка, находящаяся рядом с переключателем |
labelPlacement |
Положение строки. Значение по умолчанию right (строка располагается справа от выключателя). Другие возможные значения: left — строка находится слева, top - сверху от выключателя, bottom — снизу от выключателя. |
selected |
Признак того, что переключатель выбран (true) или не выбран (false) по умолчанию. В одной группе может быть только один выбранный переключатель. Вручную при создании компонента можно сделать выбранными по умолчанию все переключатели группы, но при запуске фильма выбранным останется все равно только один из них. |
value |
Этот параметр имеет тип Object и представляет собой объект, связанный с текущим экземпляром переключателя. |
Обработка события выбора переключателя
Рассмотрим обработку этого события на примере. На рабочем листе находятся переключатели с именами «Один», «Два», «Три», находящиеся в одной группе. Рядом с ними находятся три клипа с фотографиями, расположенные один поверх другого так, чтобы каждый раз был виден только один (верхний) клип. При выборе переключателя «Один» верхним становится первый из клипов, при выборе переключателя «Два» - второй и т. д.
Клипы находятся на основной временной шкале. Порядок их расположения относительно пользователя зависит от того, в каком порядке они подсоединены к родительскому объекту в списке отображения. Метод setChildIndex позволяет изменить порядок следования дочерних объектов у родительского узла. В качестве параметров в него передаются дочерний объект и его новый индекс. Свойство numChildren родительского объекта показывает, сколько дочерних объектов он имеет. Таким образом, чтобы переместить наверх клип с именем clip, расположенный на рабочей области, нужно выполнить следующий код:
setChildIndex(clip, numChildren – 1);
Теперь вернемся собственно к обработке события выбора одного из переключателей группы. Это уже знакомое по ранее изученным компонентам событие Event.CHANGE. Для всех переключателей группы в качестве функции-обработчика (прослушивателя) этого события можно добавить одну и ту же функцию. Свойство currentTarget объекта события, передаваемого в этот метод, будет ссылаться именно на тот переключатель, который вызвал событие.
На рабочем листе находятся три переключателя, им заданы имена rb1, rb2, rb3. Клипы с фотографиями имеют имена cat1, cat2, cat3. Клипы можно связать каждый со своим переключателем через свойство value (см. таблицу вверху).
Рассмотрим код программы.
rb1.value = cat1; // связывание клипа с переключателем
rb2.value = cat2;
rb3.value = cat3;
// добавление обработчиков событий
// для всех переключателей обработку события ведет одна и та же функция
rb1.addEventListener(Event.CHANGE, rbChange);
rb2.addEventListener(Event.CHANGE, rbChange);
rb3.addEventListener(Event.CHANGE, rbChange);
// функция — обработчик события
function rbChange(_event : Event)
{
// _event.currentTarget — переключатель, вызвавший событие
setChildIndex(_event.currentTarget.value, numChildren - 1);
}
При выборе одного из переключателей будет вызван метод rbChange, который осуществляет перемещение клипа, связанного с переключателем, вызвавшим событие, на передний план.