Здравствуйте, пытаюсь сделать кнопку, которая работала бы со структурным текстом, аля сделать картинку перед текстом или после. Перепробовал много вариантов, но так ничего и не получилось, пробовал и стилями и типами играться, но безуспешно. Её вообще можно такой сделать ? Или только отдельно текст, и отдельно картинка ?
RscButton
Лучший Ответ nIkRon , 19 June 2019 - 22:47
RscButtonMenu работает со структурным текстом.
class RscShortcutButton
{
idc=-1;
style=0;
default=0;
shadow=1;
w=0.183825;
h="( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
color[]={1,1,1,1};
colorFocused[]={1,1,1,1};
color2[]={0.94999999,0.94999999,0.94999999,1};
colorDisabled[]={1,1,1,0.25};
colorBackground[]=
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
1
};
colorBackgroundFocused[]=
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
1
};
colorBackground2[]={1,1,1,1};
textSecondary="";
colorSecondary[]={1,1,1,1};
colorFocusedSecondary[]={1,1,1,1};
color2Secondary[]={0.94999999,0.94999999,0.94999999,1};
colorDisabledSecondary[]={1,1,1,0.25};
sizeExSecondary="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
fontSecondary="RobotoCondensed";
animTextureDefault="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureNormal="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureDisabled="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureOver="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa";
animTextureFocused="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa";
animTexturePressed="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa";
periodFocus=1.2;
periodOver=0.80000001;
class HitZone
{
left=0;
top=0;
right=0;
bottom=0;
};
class ShortcutPos
{
left=0;
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos
{
left="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right=0.0049999999;
bottom=0;
};
period=0.40000001;
font="RobotoCondensed";
size="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text="";
url="";
soundEnter[]=
{
"\A3\ui_f\data\sound\RscButton\soundEnter",
0.090000004,
1
};
soundPush[]=
{
"\A3\ui_f\data\sound\RscButton\soundPush",
0.090000004,
1
};
soundClick[]=
{
"\A3\ui_f\data\sound\RscButton\soundClick",
0.090000004,
1
};
soundEscape[]=
{
"\A3\ui_f\data\sound\RscButton\soundEscape",
0.090000004,
1
};
action="";
class Attributes
{
font="RobotoCondensed";
color="#E5E5E5";
align="left";
shadow="true";
};
class AttributesImage
{
font="RobotoCondensed";
color="#E5E5E5";
align="left";
};
};
class RscButtonMenu: RscShortcutButton
{
idc=-1;
type=16;
style="0x02 + 0xC0";
default=0;
shadow=0;
x=0;
y=0;
w=0.095588997;
h=0.039216001;
animTextureNormal="#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled="#(argb,8,8,3)color(1,1,1,1)";
animTextureOver="#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused="#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed="#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault="#(argb,8,8,3)color(1,1,1,1)";
colorBackground[]={0,0,0,0.80000001};
colorBackgroundFocused[]={1,1,1,1};
colorBackground2[]={0.75,0.75,0.75,1};
color[]={1,1,1,1};
colorFocused[]={0,0,0,1};
color2[]={0,0,0,1};
colorText[]={1,1,1,1};
colorDisabled[]={1,1,1,0.25};
textSecondary="";
colorSecondary[]={1,1,1,1};
colorFocusedSecondary[]={0,0,0,1};
color2Secondary[]={0,0,0,1};
colorDisabledSecondary[]={1,1,1,0.25};
sizeExSecondary="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
fontSecondary="PuristaLight";
period=1.2;
periodFocus=1.2;
periodOver=1.2;
size="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
tooltipColorText[]={1,1,1,1};
tooltipColorBox[]={1,1,1,1};
tooltipColorShade[]={0,0,0,0.64999998};
class TextPos
{
left="0.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right=0.0049999999;
bottom=0;
};
class Attributes
{
font="PuristaLight";
color="#E5E5E5";
align="left";
shadow="false";
};
class ShortcutPos
{
left="5.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
top=0;
w="1 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h="1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
soundEnter[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",
0.090000004,
1
};
soundPush[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundPush",
0.090000004,
1
};
soundClick[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundClick",
0.090000004,
1
};
soundEscape[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",
0.090000004,
1
};
};
Перейти к сообщению
#1
OFFLINE
Отправлено 18 June 2019 - 18:03
#3
OFFLINE
Отправлено 19 June 2019 - 13:24
nIkRon, насколько я знаю, нативно такое можно сделать только если вы сделаете текстуру, на которой "нарисуете" все что вам нужно.
Ну если делать статичной картинку, то можно использовать
, текст естественно можно поменять, а для картинки я не нашел подходящей команды.Но я точно знаю что можно как-то сделать что-бы они работали со структурным текстом, ибо я видел такое уже.
#4
OFFLINE
Отправлено 19 June 2019 - 13:27
На счет нативного решения - хз, но никто вам не запрещает использовать несколько контролов:Но я точно знаю что можно как-то сделать что-бы они работали со структурным текстом, ибо я видел такое уже.
1. Снизу, который настроен на структурный текст;
2. Сверху, который является невидимой кнопкой;
Обрабатываете события с кнопки и изменяете цвета второго контрола, имитируя наведение курсора и нажатие на кнопку.
Сообщение отредактировал vlad333000: 19 June 2019 - 13:30
#5
OFFLINE
Отправлено 19 June 2019 - 13:29
На счет нативного решения - хз, но никто вам не запрещает использовать несколько контролов:Но я точно знаю что можно как-то сделать что-бы они работали со структурным текстом, ибо я видел такое уже.
1. Снизу, который настроен на структурный текст
2. Сверху, который является невидимой кнопкой
Обрабатываешь события с кнопки, на основе их изменяешь цвета второго контрола, что бы имитировать наведение курсора и нажатие на кнопку
Ну я думал об этом, но это можно назвать очередным костылем, к которому не очень хочется приходить. Хочу попробовать все же нормально сделать, пока есть пара идей, пытаюсь реализовать.
#6
OFFLINE
Отправлено 19 June 2019 - 20:41
Вы сейчас половину игры описалино это можно назвать очередным костылем, к которому не очень хочется приходить.
Если уж так хочется "прямой" вариант, то можно попробовать ListBox, который будет содержать всего один пункт. В этом контроле можно "нативно" вписать картинку и/или от текста, а так же иметьХочу попробовать все же нормально сделать, пока есть пара идей, пытаюсь реализовать.
#7
OFFLINE
Отправлено 19 June 2019 - 21:05
Вы сейчас половину игры описалино это можно назвать очередным костылем, к которому не очень хочется приходить.
одним костылем больше, одним меньше - разницы не заметите
Если уж так хочется "прямой" вариант, то можно попробовать ListBox, который будет содержать всего один пункт. В этом контроле можно "нативно" вписать картинку и/или от текста, а так же иметьХочу попробовать все же нормально сделать, пока есть пара идей, пытаюсь реализовать.
с ним вроде не все EH работают, к примеру
MouseButtonClick вроде с ним работать не будет.
#8
OFFLINE
Отправлено 19 June 2019 - 21:08
Зато есть . Так же есть , что бы сбросить выбор после "нажатия"MouseButtonClick вроде с ним работать не будет.
Сообщение отредактировал vlad333000: 19 June 2019 - 21:09
#9
OFFLINE
Отправлено 19 June 2019 - 21:15
Зато есть . Так же есть , что бы сбросить выбор после "нажатия"MouseButtonClick вроде с ним работать не будет.
это уже не то, вся прелесть MouseButtonClick в том что он "игнорирует автокликер"
Сообщение отредактировал nIkRon: 19 June 2019 - 21:16
#10
OFFLINE
Отправлено 19 June 2019 - 21:18
Да и у вас неправильная информация. Код:MouseButtonClick вроде с ним работать не будет.
with uiNamespace do
{
private _display = findDisplay 46 createDisplay "RscDisplayEmpty";
private _ctrlLB = _display ctrlCreate ["RscListBox", -1];
_ctrlLB ctrlSetPosition [0, 0, 1, 1];
_ctrlLB ctrlAddEventHandler ["MouseButtonUp", { systemChat str ["mouse_up", _this]; }];
_ctrlLB ctrlAddEventHandler ["MouseButtonDown", { systemChat str ["mouse_down", _this]; }];
_ctrlLB ctrlAddEventHandler ["MouseButtonClick", { systemChat str ["mouse_click", _this]; }];
_ctrlLB lbAdd "Row 1";
_ctrlLB lbAdd "Row 2";
_ctrlLB lbAdd "Row 3";
_ctrlLB ctrlCommit 0;
};Сообщение отредактировал vlad333000: 19 June 2019 - 21:19
#11
OFFLINE
Отправлено 19 June 2019 - 21:26
Да и у вас неправильная информация. Код:MouseButtonClick вроде с ним работать не будет.
with uiNamespace do { private _display = findDisplay 46 createDisplay "RscDisplayEmpty"; private _ctrlLB = _display ctrlCreate ["RscListBox", -1]; _ctrlLB ctrlSetPosition [0, 0, 1, 1]; _ctrlLB ctrlAddEventHandler ["MouseButtonUp", { systemChat str ["mouse_up", _this]; }]; _ctrlLB ctrlAddEventHandler ["MouseButtonDown", { systemChat str ["mouse_down", _this]; }]; _ctrlLB ctrlAddEventHandler ["MouseButtonClick", { systemChat str ["mouse_click", _this]; }]; _ctrlLB lbAdd "Row 1"; _ctrlLB lbAdd "Row 2"; _ctrlLB lbAdd "Row 3"; _ctrlLB ctrlCommit 0; };Результат
Хмм, ну ладно. Меня больше волнует вопрос "Бисы, а какого хера кнопки не работают со структурным текстом, и не имею команд которые доступны в ListBox" =)
#12
OFFLINE
Отправлено 19 June 2019 - 21:36
Этот вопрос вы можете задать по отношению ко всей игре. Ну и это не так критично, т. к. можно реализовать комбинацией других элементов, так что вопрос чисто удобства."Бисы, а какого хера кнопки не работают со структурным текстом, и не имею команд которые доступны в ListBox"
Больше вопросов возникает про функционал, который нужен многим, не имеет альтернативы и они до сих пор не реализовали его...
Сообщение отредактировал vlad333000: 19 June 2019 - 21:36
#13
OFFLINE
Отправлено 19 June 2019 - 21:39
Этот вопрос вы можете задать по отношению ко всей игре. Ну и это не так критично, т. к. можно реализовать комбинацией других элементов, так что вопрос чисто удобства."Бисы, а какого хера кнопки не работают со структурным текстом, и не имею команд которые доступны в ListBox"
Больше вопросов возникает про функционал, который нужен многим, не имеет альтернативы и они до сих пор не реализовали его...
Это про Terrain Builder ? =)
#14
OFFLINE
Отправлено 19 June 2019 - 21:49
Да про что угодно, везде есть просто тонна косяков... Террейн билдер это вообще натуральный лут бокс, что он выдает на выходе зависит преимущественно от рандома.Это про Terrain Builder ? =)
#15
OFFLINE
Отправлено 19 June 2019 - 22:47 Лучший Ответ
RscButtonMenu работает со структурным текстом.
class RscShortcutButton
{
idc=-1;
style=0;
default=0;
shadow=1;
w=0.183825;
h="( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
color[]={1,1,1,1};
colorFocused[]={1,1,1,1};
color2[]={0.94999999,0.94999999,0.94999999,1};
colorDisabled[]={1,1,1,0.25};
colorBackground[]=
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
1
};
colorBackgroundFocused[]=
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
1
};
colorBackground2[]={1,1,1,1};
textSecondary="";
colorSecondary[]={1,1,1,1};
colorFocusedSecondary[]={1,1,1,1};
color2Secondary[]={0.94999999,0.94999999,0.94999999,1};
colorDisabledSecondary[]={1,1,1,0.25};
sizeExSecondary="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
fontSecondary="RobotoCondensed";
animTextureDefault="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureNormal="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureDisabled="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureOver="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa";
animTextureFocused="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa";
animTexturePressed="\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa";
periodFocus=1.2;
periodOver=0.80000001;
class HitZone
{
left=0;
top=0;
right=0;
bottom=0;
};
class ShortcutPos
{
left=0;
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos
{
left="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right=0.0049999999;
bottom=0;
};
period=0.40000001;
font="RobotoCondensed";
size="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text="";
url="";
soundEnter[]=
{
"\A3\ui_f\data\sound\RscButton\soundEnter",
0.090000004,
1
};
soundPush[]=
{
"\A3\ui_f\data\sound\RscButton\soundPush",
0.090000004,
1
};
soundClick[]=
{
"\A3\ui_f\data\sound\RscButton\soundClick",
0.090000004,
1
};
soundEscape[]=
{
"\A3\ui_f\data\sound\RscButton\soundEscape",
0.090000004,
1
};
action="";
class Attributes
{
font="RobotoCondensed";
color="#E5E5E5";
align="left";
shadow="true";
};
class AttributesImage
{
font="RobotoCondensed";
color="#E5E5E5";
align="left";
};
};
class RscButtonMenu: RscShortcutButton
{
idc=-1;
type=16;
style="0x02 + 0xC0";
default=0;
shadow=0;
x=0;
y=0;
w=0.095588997;
h=0.039216001;
animTextureNormal="#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled="#(argb,8,8,3)color(1,1,1,1)";
animTextureOver="#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused="#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed="#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault="#(argb,8,8,3)color(1,1,1,1)";
colorBackground[]={0,0,0,0.80000001};
colorBackgroundFocused[]={1,1,1,1};
colorBackground2[]={0.75,0.75,0.75,1};
color[]={1,1,1,1};
colorFocused[]={0,0,0,1};
color2[]={0,0,0,1};
colorText[]={1,1,1,1};
colorDisabled[]={1,1,1,0.25};
textSecondary="";
colorSecondary[]={1,1,1,1};
colorFocusedSecondary[]={0,0,0,1};
color2Secondary[]={0,0,0,1};
colorDisabledSecondary[]={1,1,1,0.25};
sizeExSecondary="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
fontSecondary="PuristaLight";
period=1.2;
periodFocus=1.2;
periodOver=1.2;
size="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
tooltipColorText[]={1,1,1,1};
tooltipColorBox[]={1,1,1,1};
tooltipColorShade[]={0,0,0,0.64999998};
class TextPos
{
left="0.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
top="( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right=0.0049999999;
bottom=0;
};
class Attributes
{
font="PuristaLight";
color="#E5E5E5";
align="left";
shadow="false";
};
class ShortcutPos
{
left="5.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
top=0;
w="1 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h="1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
soundEnter[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",
0.090000004,
1
};
soundPush[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundPush",
0.090000004,
1
};
soundClick[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundClick",
0.090000004,
1
};
soundEscape[]=
{
"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",
0.090000004,
1
};
};
Сообщение отредактировал nIkRon: 19 June 2019 - 22:49












