
Il y a des mots clés avec une réponse (parfois aléatoire), un son, un effet typewriter pour la réponse.
Je compte répartir mon bot sur plusieurs frames en fait :
1. La frame 1 sert à la conversation de base, avec :
- des phrases par défaut si aucun mot clé n'est détecté.
- des mots clés et une phrase de réponse correspondante.
2. La frame 2 sert à une deuxième conversation avec :
- des phrases par défaut si aucun mot clé n'est détecté.
- des mots clés et une phrase de réponse correspondante.
Donc, quasiment "la même chose" au niveau du traitement du texte... seuelement y'a un problème :
La frame 1 fonctionne nickel, mais arrivé à la frame 2 il me sort toujours les phrases par défaut, où que je mette la détection du mot clé "machin", il est ignoré par l'as3 et je sais pas pourquoi. J'ai pourtant changé les noms des variables, etc, mais si c'était ça, même les phrases par défaut devraient être ignorées (je pense) ; or ce n'est pas le cas.
- Pour valider ce que vous dîtes, pas de bouton, juste appuyer sur "Entrée".
- Pour passer de la frame 1 à la frame 2 il faut taper "mode"
- le mot test pour la frame 1 est "coucou"
- le mot test pour la frame 2 est "machin"
- tapez n'importe quoi pour avoir les phrases "d'incompréhension"
Voici le contenu avec donc :
- un champ input "a1" pour l'utilisateur
- un champ dynamique "c1" où la réponse est stockée
- un champ dynamique "d1" où elle est affiché avec l'effet typewriter
Premier calque, Frame 1 et 2 ensemble :
var mysound = new zs0();
mysound.play();
var myString:String;
var myArray:Array;
//-----------------------------------------------------------------
addEventListener(Event.ADDED_TO_STAGE, hophophop);
function hophophop(event:Event):void {
if (myArray.length > 0) {
d1.appendText(myArray.shift());
} else {
removeEventListener(Event.ADDED_TO_STAGE, hophophop);
SoundMixer.stopAll();
}
}
//----------------------------------------------------------------- Délais de réponse en cours
var zedelais:Array = ["2000", "4000", "6000"];
var delaisok:Number = zedelais[Math.floor(Math.random()*zedelais.length)];
var zeTimer:Timer = new Timer(delaisok,1);
zeTimer.addEventListener(TimerEvent.TIMER, cestparti);
function cestparti(event:TimerEvent):void{
d1.text = "";
myString = c1.text;
myArray = myString.split("");// seperates each letter
addEventListener(Event.ENTER_FRAME, hophophop);
mysound.play();
}
mysound.play();
var myString:String;
var myArray:Array;
//-----------------------------------------------------------------
addEventListener(Event.ADDED_TO_STAGE, hophophop);
function hophophop(event:Event):void {
if (myArray.length > 0) {
d1.appendText(myArray.shift());
} else {
removeEventListener(Event.ADDED_TO_STAGE, hophophop);
SoundMixer.stopAll();
}
}
//----------------------------------------------------------------- Délais de réponse en cours
var zedelais:Array = ["2000", "4000", "6000"];
var delaisok:Number = zedelais[Math.floor(Math.random()*zedelais.length)];
var zeTimer:Timer = new Timer(delaisok,1);
zeTimer.addEventListener(TimerEvent.TIMER, cestparti);
function cestparti(event:TimerEvent):void{
d1.text = "";
myString = c1.text;
myArray = myString.split("");// seperates each letter
addEventListener(Event.ENTER_FRAME, hophophop);
mysound.play();
}
Second calque, Frame 1 :
// BLABLA INITIAL DE BASE
SoundMixer.stopAll();
//----------------------------------------------------------------
a1.addEventListener(KeyboardEvent.KEY_DOWN, clavier_01);
function clavier_01(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.ENTER) {
gogogo_01();
}
}
function gogogo_01():void {
var aok: String = a1.text;
//----------------------------------------------------------------- RIEN DANS LA BASE
var okunide01:Array = ["De quoi?", "Je ne comprends pas.", "pardon??"];
var saispas01:String = okunide01[Math.floor(Math.random()*okunide01.length)];
c1.text = saispas01;
//----------------------------------------------------------------- Conversation standard
if(aok.indexOf("coucou") != -1){c1.text = "Salut?";}
//----------------------------------------------------------------- Conversation standard
if(aok ==("mode")){c1.text = "mode ok";gotoAndStop(2);}
a1.text = "";
d1.text = "";
//----------------------------------------------------------------- Délais de la réponse
zeTimer.delay = zedelais[Math.floor(Math.random()*zedelais.length)];
zeTimer.start();
}
SoundMixer.stopAll();
//----------------------------------------------------------------
a1.addEventListener(KeyboardEvent.KEY_DOWN, clavier_01);
function clavier_01(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.ENTER) {
gogogo_01();
}
}
function gogogo_01():void {
var aok: String = a1.text;
//----------------------------------------------------------------- RIEN DANS LA BASE
var okunide01:Array = ["De quoi?", "Je ne comprends pas.", "pardon??"];
var saispas01:String = okunide01[Math.floor(Math.random()*okunide01.length)];
c1.text = saispas01;
//----------------------------------------------------------------- Conversation standard
if(aok.indexOf("coucou") != -1){c1.text = "Salut?";}
//----------------------------------------------------------------- Conversation standard
if(aok ==("mode")){c1.text = "mode ok";gotoAndStop(2);}
a1.text = "";
d1.text = "";
//----------------------------------------------------------------- Délais de la réponse
zeTimer.delay = zedelais[Math.floor(Math.random()*zedelais.length)];
zeTimer.start();
}
Second calque, Frame 2 :
// BASE AVEC LES INFOS
SoundMixer.stopAll();
//----------------------------------------------------------------
a1.addEventListener(KeyboardEvent.KEY_DOWN, clavier_02);
function clavier_02(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.ENTER) {
gogogo_02();
}
}
function gogogo_02():void {
var inxjgf: String = a1.text;
//----------------------------------------------------------------- RIEN DANS LA BASE
var aze:Array = ["Erreur truc.","Je n'ai rien à ce sujet.","Aucune info disponible."];
var rtg:String = aze[Math.floor(Math.random()*aze.length)];
c1.text = rtg;
//----------------------------------------------------------------- REFERENCE TROUVÉE
if(inxjgf.indexOf("machin") != -1){c1.text = "Truc?";}
a1.text = "";
d1.text = "";
//----------------------------------------------------------------- Délais de la réponse
zeTimer.delay = zedelais[Math.floor(Math.random()*zedelais.length)];
zeTimer.start();
}
Une idée de là où ça coince, svp?
Merci de vos conseils...