Активный текст - часть II.
Тема нашего сегодняшнего поста – обеспечить обратную связь с приложением.
Для этого добавим кнопку “BUTTON” и ссылку, т.е. текст, произведя щелчок по которому выполнится какое то действие.
// Определяем используемые шрифты
#define FontM "tahomaB36"
#define FontNOTES "AudreysHandI48"
#define FontHTML "CourierNewB64"
// Стиль вывода текста
#define ST_LEFT 0
#define ST_RIGHT 1
#define ST_CENTER 2
#define ST_FRAME 64
// Используемые элементы. Статические типы
#define CT_STATIC 0 // Простой текст
#define CT_BUTTON 1 // Кнопка
#define CT_ACTIVETEXT 11 //Ссылка
// Определение класса текста
class RscText
{
type = CT_STATIC;
idc = -1;
style = ST_LEFT;
colorBackground[] = {0, 0, 0, 0};
colorText[] = {1, 1, 1, 1};
font = FontM;
sizeEx = 0.04;
};
// Определяем класс ссылки
class RscActiveText
{
type = CT_ACTIVETEXT;// Тип - активный текст
idc = -1; // Поскольку это своего рода шаблон, то
// идентификатор = -1.
style = ST_LEFT; // Выравнивание по левому краю
color[] = {1, 1, 1, 1}; // Цвет - белый.
colorActive[] = {1, 0, 0, 1}; // Цвет при выделении - красный.
font = FontM;
sizeEx = 0.04;
soundEnter[] = {"ui\ui_over", 0.2, 1}; // Это звук щелчка
soundPush[] = {, 0.2, 1};
soundClick[] = {"ui\ui_ok", 0.2, 1};
soundEscape[] = {"ui\ui_cc", 0.2, 1};
default = false; // Не выделяется по умолчанию (Всегда FALSE)
};
// Определение класса Кнопка
classRscButton
{
type = CT_BUTTON;// Тип - кнопка стандартная.
idc = -1; // Параметры теже.
style = ST_CENTER;
colorText[] = {0, 0, 0, 1};
font = FontHTML;// Шрифт, которым будет отображена надпись
sizeEx = 0.025;
soundPush[] = {, 0.2, 1};
soundClick[] = {"ui\ui_ok", 0.2, 1};
soundEscape[] = {"ui\ui_cc", 0.2, 1};
default = false;
};
// Пользовательский класс, здесь мы создаем СВОИ классы.
class DlgTutorial
{
idd = -1;
movingEnable = true; // Диалог можно перемещать.
// Классы "фона"
controlsBackground[] =
{
MY_BACKGROUND,
MY_FRAME
};
// Строим прямоугольник в центре экрана
class MY_BACKGROUND: RscText
{
colorBackground[] = {0.5, 0.5, 1, 1}; // Цвет - пурпурный !
// можно и стандартный - серый 0.4, 0.4, 0.4, 0.75
text = ; // Без надписи
x = 0.2; // Смещение по горизонтали.
y = 0.1; // Смещение по вертикали.
w = 0.6; // Ширина.
h = 0.7; //Высота.
};
// Этот класс выведет текст "Мой диалог" в рамке
class MY_FRAME: RscText
{
idc = 103;
style = ST_FRAME; // Стиль - текст в рамке
colorText[] = {0, 0, 0, 1}; // Цвет - черный
text = "Мой диалог"; // Надпись
font = FontHTML; // Тип шрифта
sizeEx = 0.025;
x = 0.22;
y = 0.12;
w = 0.56;
h = 0.66;
};
objects[] = { };
// Описываем классы, отвечающие за создание ссылки и кнопки.
controls[] =
{
HELLO_WORLD,
CLICK_ME,
EXIT_BUTTON
};
// Просто текст в центре рамки - Hello Word
class HELLO_WORLD : RscText
{
idc = 100; // Присваиваем идентификатор - 100
style = ST_CENTER; // Центрируем текст
x = 0.4;
y = 0.45;
w = 0.2;
h = 0.1;
text = "Hello World!";
font = FontNOTES;
size = 1;
};
// А вот и наша ссылка с надписью "Кликни по мне !"
class CLICK_ME : RscActiveText
{
idc = 101; // Поскольку ей присвоено действие, то задаем идентификатор
style = ST_CENTER;
x = 0.35;
y = 0.65;
w = 0.3;
h = 0.05;
text = "Кликни по мне !";
// Меняем текст, для этого элементу управления с идентификатором 100, присваиваем текст
// Привет!
action = "ctrlSetText [100, ""Привет!""]";
default = true; // ссылка выделена по умолчанию
};
// Это кнопка.
class EXIT_BUTTON : RscButton
{
idc = 102;
x = 0.35;
y = 0.25;
w = 0.3; // Длина кнопки
h = 0.04; // высота кнопки
text = "Закрыть диалоговое окно";
action = "closeDialog 0"; // Закрываем окно.
};
};
Что бы вызвать окно диалога пропишите следующую команду в скрипте.
ok = createDialog "DlgTutorial"