buffer_async_group_end

该函数完成缓冲区异步组的定义。

您之前必须调用函数 buffer_async_group_begin 来启动该组,然后为您要保存的每个文件调用函数 buffer_save_async( 或 buffer_load_async 加载缓冲区)。最后调用此函数,它将开始保存文件。该函数将为保存返回一个唯一的 ID 值,然后可以在 异步保存 / 加载事件 中使用该值来解析 async_loadDS 映射的结果。

 

语法:

buffer_async_group_end();

 

返回:

Async Request ID

 

例子:

buffer_async_group_end 函数可以从任何事件调用,并且由于它是异步的,因此回调几乎是瞬时的,也可能需要几秒钟的时间。调用该函数很简单,如下所示:

buffer_async_group_begin("SaveGame");
save1 = buffer_save_async(buff1, "Player_Save1.sav", 0, 16384);
save2 = buffer_save_async(buff2, "Player_Save2.sav", 0, 16384);
save3 = buffer_save_async(buff3, "Player_Save3.sav", 0, 16384);
save4 = buffer_save_async(buff4, "Player_Save4.sav", 0, 16384);
save_id = buffer_async_group_end();

上面的代码启动一个缓冲区组,然后将其设置为异步保存 4 个文件。然后组定义结束 (此时开始保存),将函数调用的 ID 存储在变量 save_id 中。保存完成后,将触发异步 Save / Load 事件,您可以解析 async_load 映射以获取函数的正确 ID,如下所示:

if (ds_map_find_value(async_load, "id") == saveid)
{
    if (ds_map_find_value(async_load, "status") == false)
    {
        show_debug_message("Save failed!");
    }
}

上面的代码首先检查 async_loadDS 映射中的 ID 是否与调用 buffer_async_group_end 返回的 ID 相同,然后检查回调的状态并如果出现任何问题,则发布调试消息。