Табы реализуются не просто, а очень просто........
, каждый таб рисуется в конструкторе на своём слое, а потом переключателем табов в иде кнопок происходит активация соответствующего слоя.
Базовый класс конструктор табов:
/// @description TabSheets
//Site: MidaDev.ru
//Author: Dimusikus
function GUI_TabSheet() : GUIElement() constructor
{
#region Constructor
my_name_is = other.my_name_is;
text = other.text_button;
lay_id = layer_get_id(other.layer_name);
//acti
GUI_Elements.add_element(my_name_is, _id);
GUI_Elements.tabsheets_add_group(other.group);
GUI_Elements.tabsheets_add_tab(other.group, self)
#endregion
//*******************************************************************
static set_visible = function(_v)
{
layer_set_visible(lay_id, _v);
if _v then instance_activate_layer(lay_id);
else instance_deactivate_layer(lay_id)
}
//*******************************************************************
static message = function(_aidi)
{
if _aidi == _id then set_visible(true);
else set_visible(false);
}
//*******************************************************************
static listen = function()
{
if mouse_released then
{ mouse_clear(mb_any);
trace("полноценное нажатиэ");
GUI_Elements.tabsheets_set_me(other.group, _id);
EVENTGUI.publish(my_name_is, true);
//if callback!=pointer_null then callback();
GUI_Elements.element_callback(my_name_is);
};
}
//*******************************************************************
static draw = function()
{
//draw_focus();
//draw_rectangle(_xo, _yo, _xo + width, _yo + height, true);
draw_set_color(color_backgr_button);
//draw_button(_xo, _yo, _xo + width, _yo + height, !mouse_grab);
var _spr = layer_get_visible(lay_id) == true ? spr_TabSheet_active : spr_TabSheet_inactive;
draw_sprite_stretched(_spr, 0, _xo, _yo, width, height);
draw_set_hv();
draw_set_color(color_text);
draw_set_font(font)
draw_text(x , y , text);
}
//*******************************************************************
//инициализируем значение
set_visible(other.active);
//*******************************************************************
}
В глобальном классе GUI_Elements реализуется взаимодействие всех табов между собой(активация выбранного, деактивация остальных из этой группы табов)
Каждый Таб имеет свойства объекта:
Где прописывается принадлежность таба к группе, и принадлежность его е слою на котором он находится в конструкторе рума.