为了解决问题,你需要在scr_create_buttons函数中添加代码以跟踪每按钮的实例ID。 然后,在控制器对象中修改your code为:
if instance_number(obj_parent_button_menu) > 0
{
var tooltips_created = instance_number(obj_tooltip);
if (global.menu_button_hovered && tooltips_created == 0)
{
scr_create_tooltips();
show_debug_message("created");
};
var hovered_tooltip_id = point_find_with_layer(obj_tooltip, mouse_x, mouse_y, layer_self);
if (hovered_tooltip_id <= 0)
{
show_debug_message("no");
}
if (!global.menu_button_hovered) && (tooltips_created > 0)
{
with obj_tooltip[0] instance_destroy();
}
}
在scr_create_buttons函数中添加下列代码:
function scr_create_buttons(_array, _items_per_column, _sprite, _object){
//...-existing code...
for (var i = 0; i < _array_length; i += 1)
{
//...existing code...
var _object_instance = instance_create_layer(button_x, button_y, "UI_2", _object,
{button_id : _array_length - 1 - i, parent : _object});
instance_set_variable(_object_instance, "text", //add the text for tooltip
//...
};
}
在控制器对象的instance_destroy函数下,使用 instance_set_variable(_object_instance, "text", "") 给 tooltips 的 text 变量重置为 "" 以便重复点击时 tooltips 可以被重新创建。
在 scr_create_tooltips() 函数中添加代码将 tooltips 的实例ID保存到 global.tooltips_data 中。
var text = instance_variable_parent_exists(parent, "text") ? instance_variable_parent_get(parent, "text") : "";
function scr_create_tooltips()
{
// ... existing code ...
var _tooltips_length = array_length(_tooltips);
var _tooltip_id = 0;
for (var i = 0; i < _tooltips_length; i += 1)
{
_tooltip_id = i;
global.tooltips_data[_tooltip_id] = _tooltips[i];
// instance_set_tooltip(obj_tooltip[_tooltip_id], "UI_2", global.tooltips_data[_tooltip_id].text);
global.tooltips_data[_tooltip_id].x = obj_tooltip[_tooltip_id].x;
global.tooltips_data[_tooltip_id].y = obj_tooltip[_tooltip_id].y;
}
return _tooltip_id;
}
最后改变 instance_destroy 函数的引用以使用 instance_set_variable。
if (!global.menu_button_hovered) && (tooltips_created > 0)
{
for (var i = 0; i < tooltips_created; i += 1)
{
instance_set_variable(obj_tooltip[i], "text", "");
}
with obj_tooltip instance_destroy();
}
}
然后你应该能看到 tooltips 以每个按钮的右方创建。
评论 (0)