Générer une chaîne de caractères (String) aux hazard en AS2 et AS3

Je cherchais pour une fonction qui générait des String au hazard, mais j’ai rien trouvé donc j’ai été obligé de l’écrire moi-même à partir du code de quelqu’un qui faisait un effet de machine à écrire, par contre je n’arrive plus à trouver la page web… J’utitlise le code suivant quand je veux charger du contenu dynamique comme du php et que je ne veux pas que Flash mette ma requête en cache. Voici la version ActionScript 2 du code:

1
2
3
4
5
6
7
8
9
function generateRandomString(newLength:Number):String{
  var a:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  var alphabet:Array = a.split("");
  var randomLetter:String = "";
  for (var i:Number = 0; i <newLength; i++){
    randomLetter += alphabet[Math.floor(Math.random() * alphabet.length)];
  }
  return randomLetter;
}

Pour la version ActionScript 3 j’ai fait quelques petites optimisations et j’ai créé une classe avec une version statique de la méthode; voici le code:

1
2
3
4
5
6
7
8
9
10
11
12
13
package net.zedia.utils{
  public final class StringUtils{
    public static function generateRandomString(newLength:uint = 1, userAlphabet:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"):String{
      var alphabet:Array = userAlphabet.split("");
      var alphabetLength:int = alphabet.length;
      var randomLetters:String = "";
      for (var i:uint = 0; i &lt;newLength; i++){
         randomLetters += alphabet[int(Math.floor(Math.random() * alphabetLength))];
      }
      return randomLetters;
    }
  }
}

Voici comment l’utiliser:

1
2
3
import net.zedia.utils.StringUtils;
trace (StringUtils.generateRandomString(4));//for a random string of 4 characters
trace (StringUtils.generateRandomString(4, "ROGER"));//for a random string of 4 characters using only the following letters: ROGER

Tags: , ,

Leave a Reply