2010-12-07 20 views
1

Je crée un programme ActionScript dans lequel j'ai besoin d'insérer du texte dans une autre chaîne à des positions aléatoires.
J'ai le texte dans lequel les chaînes seront insérées; et j'ai les chaînes qui seront insérées comme tableau.
Cependant, je ne sais pas comment insérer les éléments de ce tableau dans l'autre chaîne à des positions aléatoires.
Toute aide sera grandement appréciée.ActionScript: Insérer du texte dans une chaîne à des endroits aléatoires?

Répondre

0
while(arrayOftringsToInsert.length) 
{ 
    var randomPosition:uint = Math.round(Math.random() * text.length) 
    text = text.slice(0, randomPosition) + arrayOftringsToInsert.pop() + text.slice(randomPosition + 1, text.length) 
} 
+0

presque travaillé. il a inséré des mots divisant des mots entiers. ce que je voulais vraiment, c'était insérer avant et après les mots complets. Si certains d'entre vous peuvent aider, ce sera génial. toujours merci user531694 – toad

+0

Techniquement, cela répond exactement à la description de la fonctionnalité que vous avez fournie. Pour insérer aux limites de mots, vous devez diviser la chaîne de texte sur le caractère espace et modifier les contraintes randomPosition pour générer une valeur d'index aléatoire dans votre tableau de texte cible, en insérant des valeurs aléatoires, puis en rejoignant le tableau dans une chaîne. Utilisez cette API: http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/String.html#split%28%29 – user531694

1

La réponse à votre question modifiée:

var stringsToInsert:Array = ["abc", "def", "ghi"]; 
var text:String = "here is some text" 

var textArr:Array = text.split(" "); 

while(stringsToInsert.length) 
{ 
    var randomPosition:uint = Math.round(Math.random() * textArr.length); 
    textArr.splice(randomPosition, 0, stringsToInsert.pop()); 
} 
text = textArr.join(" "); 
trace(text);