get_string_async

此函数打开一个窗口并显示消息以及供用户输入字符串的空间 (其中将包含所提供的默认字符串开始)。这是一个异步函数,因此,GameMaker 在等待答案时 不会 阻止正在运行的设备,而是继续正常运行事件。用户输入字符串并按下 " 确定 " 按钮后,就会触发一个 异步对话框事件 ,该事件 在该事件持续时间内将 DS 映射存储在变量 async_load

该映射将包含三个键:"id"、"status" 和 "result"。 "id" 是函数在调用时返回的值,"status" 将为 true( 表示 "Okay" 按钮被按下),或 false( 如果消息被取消 )( 如果适用) 因为并非所有目标平台都允许取消消息)。最后,"result" 将返回包含用户输入的字符串 (如果未提供,则返回空字符串 "")。

注意 此函数 仅供 调试和测试使用 ,不应在已发布的游戏中使用。为此,您应该创建一个自定义用户界面来接收玩家的输入,以便您可以完全控制对话框的外观和行为。

 

语法:

get_string_async(string, default);

参数类型描述
stringString要在对话框中显示的消息。
defaultString默认字符串。

 

返回:

Async Request ID

 

扩展示例:

 

显示消息的对象的左鼠标按事件(例如)将具有以下代码:

msg = get_string_async("What's your name?","Anon");

上面将显示一条消息,要求用户输入字符串并按 " 确定"。函数 ID 存储在变量 msg 中,并将在异步 Dialog 事件中使用,如下所示:

var i_d = ds_map_find_value(async_load, "id");
if (i_d == msg)
{
    if (ds_map_find_value(async_load, "status"))
    {
        if (ds_map_find_value(async_load, "result") != "")
        {
            global.Name = ds_map_find_value(async_load, "result");
        }
    }
}

上述代码根据变量 msg 中存储的值检查返回的 DS Map 的 "id" 键。如果它们相同,则会检查是否按下了 "Okay"( 而不是关闭 / 取消窗口),如果返回 true,则会检查字符串的 " 结果 " 以确保在设置全局变量之前没有返回空字符串。