«Радиокнопка (от англ. radio button) или переключатель - элемент интерфейса, который позволяет пользователю выбрать одну опцию (пункт) из предопределенного набора (группы).» (Wikipedia)
С этим элементом программного интерфейса мы сталкиваемся постоянно и было бы странно, если бы библиотека компонентов MiniUI не включала собственную реализацию компонента RadioButton. И действительно, такой компонент там имеется. Причём реализован переключатель в этой библиотеке очень удобно.
Но, первым делом, нам понадобится сама библиотека MiniUI. Напомню, что скачать её можно по ссылкам, указанным в посте «MiniUI: компоненты Label и Button».
В самом простом случае, компонент-переключатель из MiniUI создаётся и используется точно также, как и рассмотренные ранее компоненты ToggleButton и Checkbox ( см. пост «MiniUI: компоненты ToggleButton и Checkbox»). Вот пример...
ActionScript 3.0:
/*
Импорт классов.
*/
import sliz.miniui.Radio;
/*
Создаём объект класса Radio.
В качестве параметров передаём:
- подпись к переключателю (" Я согласен! ");
- положение переключателя по оси X (50);
- положение переключателя по оси Y (50);
- контейнер, внутрь которого мы поместим наш переключатель (this);
- функция, которая будет вызываться при переключении радиокнопки (func).
*/
var radio:Radio = new Radio(" Я согласен! ", 50, 50, this, func);
/*
Если мы хотим, чтобы наш переключатель изначально был бы активен, то в качестве параметра методу setToggle() передаём значение true.
А если нам надо, чтобы переключатель не был бы активным, то передаём значение false.
*/
radio.setToggle(false);
/*
Функция, которая вызывается каждый раз при переключении радиокнопки.
*/
function func(event:Event):void
{
/*
Узнаём текущее состояние переключателя.
*/
trace("Состояние переключателя: " + radio.getToggle());
}
Результат:
Но вы, наверно, скажите, что такое поведение для радиокнопок не характерно. Так, обычно, используют компонент Checkbox («Флажок»). Радиокнопки же принято использовать не по одной, а в группе. При этом из всей группы активным может быть только один переключатель.
Нет ничего проще...
ActionScript 3.0:
/*
Импорт классов.
*/
import sliz.miniui.RadioGroup;
import sliz.miniui.Radio;
/*
Создаём два объекта класса Radio.
Параметры такие же, как и в ранее рассмотренном примере.
*/
var radio_1:Radio = new Radio(" Мужской пол ", 50, 50, this, null);
var radio_2:Radio = new Radio(" Женский пол ", 50, 80, this, null);
/*
Объединяем две радиокнопки в одну группу.
*/
var radioGroup:RadioGroup = new RadioGroup([radio_1,radio_2]);
/*
Теперь указываем, что изначально активна первая радиокнопка.
*/
radio_1.setToggle(true);
Результат:
Информацию, полученную с помощью радиокнопок, можно обрабатывать по-разному. Например, так...
ActionScript 3.0:
/*
Импорт классов.
*/
import sliz.miniui.RadioGroup;
import sliz.miniui.Radio;
import sliz.miniui.Window;
import sliz.miniui.Label;
import sliz.miniui.Button;
/*
Создаём два объекта класса Radio.
Параметры такие же, как и в ранее рассмотренном примере.
*/
var radio_1:Radio = new Radio(" Мужской пол ", 50, 50, this, null);
var radio_2:Radio = new Radio(" Женский пол ", 50, 80, this, null);
/*
Объединяем две радиокнопки в одну группу.
*/
var radioGroup:RadioGroup = new RadioGroup([radio_1,radio_2]);
/*
Теперь указываем, что изначально активна первая радиокнопка.
*/
radio_1.setToggle(true);
/*
Кнопка, клик по которой выводит окно с результатами.
*/
new Button(" Вывести результат ", 50, 120, this, newWindow);
/*
Функция, создающее окно для вывода результатов.
*/
function newWindow(event:Event):void
{
var window:Window = new Window(this, 200, 50," Окно программы ");
window.setWH(250, 200);
var txt:String;
if(radio_1.getToggle()){
txt = "Вы особь мужского пола!";
}else{
txt = "Вы особь женского пола!";
}
new Label(txt, window, 25, 25, 200);
new Button(" Закрыть окно ", 20, 200, window, removeWindow);
}
/*
Закрываем окно.
*/
function removeWindow(event:Event):void
{
event.target.parent.parent.parent.removeChild(event.target.parent.parent);
}
Результат:
А у меня на сегодня всё.