get_integer_async


La description

Cette fonction ouvre une fenêtre et affiche un message ainsi qu'un espace pour que l'utilisateur saisisse une valeur (qui contiendra la valeur par défaut fournie pour commencer). Il s'agit d'une fonction asynchrone, et en tant que tel, GameMaker Studio 2 ne bloque pas le périphérique sur GameMaker Studio 2 il s'exécute en attendant la réponse, mais continue à exécuter les événements normalement. Une fois que l'utilisateur a tapé sa chaîne et appuyé sur le bouton "Ok", un événement Dialog asynchrone est déclenché qui, pour la durée de cet événement seulement, aura un ds_map stocké dans la variable async_load.

Cette carte contiendra les trois clés "id", "status" et "value". "id" est la valeur qui a été retournée par la fonction lors de l'appel, le "status" sera soit true pour le bouton "OK" appuyé, ou false si le message a été annulé (le cas échéant, toutes les plates-formes cibles ne permettent pas l'annulation des messages). Enfin "value" retournera l'entier que l'utilisateur a entré (ou 0 si aucun n'a été fourni).


Syntaxe:

get_integer_async(string, default);

Argument La description
String Le message à afficher dans le dialogue.
default La valeur par défaut


Résultats:

Real


Exemple étendu:

L' événement de presse de la souris gauche (par exemple) de l'objet qui affiche le message aura le code suivant:

msg = get_integer_async("How old are you?", 0);

Ce qui précède montrera un message demandant à l'utilisateur de saisir une chaîne de caractères et d'appuyer sur "OK". L'identifiant de la fonction est stocké dans la variable "msg" et sera utilisé dans l' événement Dialogs asynchrone comme indiqué ci-dessous:

var i_d = ds_map_find_value(async_load, "id");
if i_d == msg
   {
   if ds_map_find_value(async_load, "status")
      {
      global.Age = ds_map_find_value(async_load, "value");
      }
   }

Le code ci-dessus vérifie la clé "id" du retour ds_map contre la valeur stockée dans la variable "msg". Si elles sont identiques, elle vérifie ensuite si "OK" a été pressé (plutôt que la fenêtre est fermée / annulée) et si elle revient true il définit ensuite une variable globale à partir de l'entier renvoyé.