|
|
Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Вопрос - ответ Проблема с отсутсвием реакции на доп. контролы в инвентаре |
Проблема с отсутсвием реакции на доп. контролы в инвентаре |
› Пятница
› 27.05.2016
› 17:02
› Сообщение #
Здравствуйте, прошу указать мне на мою ошибку, хочу сделать ящик механика как сделан в аддоне dayz origins (используя их контролы сделал аптечку, их контролы аптечки не работали использовал их контролы ящика механика (для аптечки), сейчас хотелось бы добавить к себе в аддон дополнительные 6 контролов и фон для них, вроде бы все сделал, вот только очень специфически работает), скриптовую часть реализовал, упаковка\вынимание, но есть проблема, напрочь отсутствует реакция при взаимодействии с новыми контролами (мною добавленными) нет фокуса (хотя
color[] = {1,1,1,1}; colorActive[] = {1,1,1,0.5}; ), нет реации на клики хотя ( onMouseButtonDown = "systemChat 'control pressed'"; ), но... есть странный интересный факт, если создать гир командой (createGearDialog [player, "RscDisplayGear"];) и отрисовать фон ящика и его контролы то они кликабельны и есть фокус, а если открыть гир и нажать на иконку ящика механика (вызывает функцию отрисовки ящика) то при этом раскладе контролы не кликабельны и фокуса нет, и один интересный факт, что если использовать вариант создания окна гира и отрисовки контролов\фона где все работает и нажать на стандартные контролы гира то перестает работать контролы сумки, подскажите пожалуйста в чем может быть ошибка... (где то я читал что нужно контролы отрисовывать все сразу но прятать их, сейчас я накладываю текст (по дефолту пуст, накладываю текст и появляется ячейки и фон ctrlSetText)) Добавлено (27.05.2016, 14:04) Добавлено (27.05.2016, 14:07) Добавлено (27.05.2016, 14:10) Добавлено (27.05.2016, 17:02) |
› Пятница
› 27.05.2016
› 18:45
› Сообщение #
Наследование делается так
class Наследник : Родитель { |
› Пятница
› 27.05.2016
› 20:12
› Сообщение #
Так ведь так и сделано, ласт пост родитель, предпоследний наследник
Добавлено (27.05.2016, 20:12) |
› Пятница
› 27.05.2016
› 22:06
› Сообщение #
у тебя написано -
вот текущий конфиг class RscDisplayGear { вот от чего наследие class RscDisplayGear { чтото я не вижу разницы. и не вижу где вставлен onMouseButtonDown = "systemChat 'control pressed'"; |
› Пятница
› 27.05.2016
› 22:39
› Сообщение #
Из конфига убрал, т.к. иной скрипт выводит сейчас инфу по контролам, выше в иерархии, дело я думаю не в конфиге а в фокусе зон инвентаря, не знаю как зовется вообщем если я создам
createGearDialog [player, "RscDisplayGear"]; _gearDisplay = findDisplay 106; _CA_Gear_slot_medbs_bg = _gearDisplay displayCtrl 90010; _CA_Gear_slot_medbs_bg ctrlSetTextColor [1,1,1,1]; _CA_Gear_slot_medbs1_bg = _gearDisplay displayCtrl 90011; _CA_Gear_slot_medbs1_bg ctrlSetTextColor [1,1,1,1]; То ячейка 90011 будет кликабельна (лкм) если нажму пкм по ней все, зона блокируется (под сумку), а если вызвать функций при открытом инвентаре _gearDisplay = findDisplay 106; _CA_Gear_slot_medbs_bg = _gearDisplay displayCtrl 90010; _CA_Gear_slot_medbs_bg ctrlSetTextColor [1,1,1,1]; _CA_Gear_slot_medbs1_bg = _gearDisplay displayCtrl 90011; _CA_Gear_slot_medbs1_bg ctrlSetTextColor [1,1,1,1]; отрисоваться отрисуется, вот только реакции на клики нет, как буд-то фокус переходит на другое окно (стандартного инвентаря) и та зона где была сумка блокируется Добавлено (27.05.2016, 22:39) |
› Пятница
› 27.05.2016
› 22:50
› Сообщение #
|
› Понедельник
› 30.05.2016
› 18:46
› Сообщение #
Выше в иерархии в конфиге:
onMouseButtonDown="_this call player_selectSlot;"; и onMouseButtonDown = "[_this,'selectSlot'] call handleGear;"; а сам скрипт: _thisArray=_this; _control = _thisArray select 0; _button = _thisArray select 1; systemChat format["ui_selectSlot.sqf: _control: %1 _button: %2",_control,_button]; на скринах в чате результат Добавлено (27.05.2016, 23:02) Добавлено (27.05.2016, 23:03) Добавлено (27.05.2016, 23:04) Добавлено (27.05.2016, 23:25) Код onMouseButtonDown = "[_this,'selectSlot'] call handleGear;"; а в группе гира Код onMouseButtonDown="_this call player_selectSlot;"; все это грубо говоря ссылается в 1 функцию по причине: Код handleGear=player_selectSlot; player_selectSlot = compile preprocessFileLineNumbers "custom\ui_selectSlot.sqf"; сама функция (кусок): Код _thisArray=_this; if((count _thisArray)==2)then{ _thisArray=_this select 0; }; _control = _thisArray select 0; _button = _thisArray select 1; systemChat format["ui_selectSlot.sqf: _control: %1 _button: %2",_control,_button]; Добавлено (27.05.2016, 23:26) Добавлено (28.05.2016, 17:52) Добавлено (30.05.2016, 18:46) |
| |||
| |||
Чат сайта |