buffer_load_async

此函数将您之前使用 buffer_save 函数 (或任何其他用于保存缓冲区的函数) 创建的文件加载到缓冲区中。

"偏移量 " 定义了缓冲区内加载的起始位置 (以字节为单位),"大小 " 是从该偏移量开始加载的缓冲区的大小 (也以字节为单位)。您可以为大小参数提供值 -1 以加载整个缓冲区。请注意,该函数将从 " 默认 " 文件夹加载,该文件夹 不需要 作为您提供的文件路径的一部分包含在内。如果该文件夹不存在或者当您使用 buffer_save_async 保存文件时,将会创建该文件夹。

该函数返回一个唯一的 ID 值,然后可以在 保存 / 加载异步事件 中使用该值来检查 async_load 的 ID 值,如下面的扩展示例所示。事件中的 async_load 映射将具有以下两个键 / 值对:

注意HTML5上,如果您从服务器而非本地存储加载文件,这是首选的加载文件方法,因为同步加载在大多数浏览器上已经过时,最终将被淘汰。

请阅读 buffer_load 页面,了解特定于平台的说明。

 

语法:

buffer_load_async(buffer, filename, offset, size);

参数类型描述
bufferBuffer要加载的缓冲区。
filenameString要加载的文件名。
offsetReal缓冲区内要加载到的偏移(以字节为单位)。
sizeReal要加载的缓冲区的大小(以字节为单位)。

 

返回:

Async Request ID

 

例子:

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

loadid = buffer_load_async(buff, "Player_Save.sav", 0, 16384);

上述代码将文件 "Player_Save.sav" 的内容加载到给定缓冲区,并将函数调用的 ID 存储在变量 loadid 中。加载完成后,将触发异步 Save / Load 事件,您可以解析 async_load 映射以获取函数的正确 ID,如下所示:

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

上面的代码将首先检查已创建的 DS 地图的 ID,然后检查回调的状态,如果有任何问题,则发布调试消息。