Game Maker Language リファレンス > 組み込み関数 用途別 > 非同期関数 > get_string_async
モーダルでない文字入力ダイアログを表示します。
get_string_async(string, default);
この関数は文字入力ダイアログをメッセージ付きで表示します(デフォルトの文字列を指定することも可能です)。これは非同期関数であり、GameMaker:Studioは結果を待たずに処理を続けます(通常のイベントはそのまま動作します)。OKボタンが押されることで、Dialogイベントに通知が来て、そこで"async_load"変数に結果がds_map形式で格納されます。
このds_mapは、"id"と"status"、"result"の3つのキーを持ちます。"id"はこの関数の戻り値と比較することで整合性をチェックし、"status"はOKが押されたかどうか(プラットフォームによりOKが押されない可能性があります)を判定し、"result"にユーザが入力した文字列が設定されます。
マウスの左クリックイベントに以下のように記述するとします。
msg = get_string_async("What's your name?","Anon");
これにより文字入力ダイアログを表示します。結果は"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"); } } }
"id"を関数の戻り値"msg"と比較することで整合性をチェックし、"status"でOKが押されたかどうか、結果文字列を"result"で受け取っています。