Forums Développement Multimédia

Aller au contenu

Je n'arrive pas à insérer de l'AS3 dans de l'AS3

CODE

18 réponses à ce sujet

#1 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 05 January 2016 - 14:46 PM

Bonjour et bonne année à tout le monde :mrgreen: !!

J'aimerai recréer l'affichage de type "terminal" des anciens ordinateurs (années 70 et 80), pour mon projet de chatbot "maison".

Alors...
- je peux afficher un texte façon "typewriter" et imposer un délai d'affichage
- je peux faire en sorte d'afficher un caractère et qu'il clignote

Mais je n'arrive pas à mélanger ces deux choses pour obtenir le "super effet" que l'on peut voir par exemple, dans le film wargames.

Une idée de comment faire, svp?... "Appendtext" est utilisé pour l'affichage typewriter et après quelques tests infructueux, je ne sais pas trop où placer le curseur clignotant...

Je joins à ce message le fla, fait avec flash CS6. Il comporte :
- un champ (att.text) où le texte à afficher en typewriter sera mis en standby
- un champ (zecurseur.text) où est affiché le curseur clignotant
- un champ (lechatbot.text) où "att.text" sera affiché lettre par lettre (typewriter)
- un bouton rouge pour lancer l'affichage et son délai
- un bouton rouge pour effacer les deux champs (att et lechatbot)

Fichier joint  blink.fla   327.88 Ko   0 téléchargement(s)

Merci de vos suggestions

#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 05 January 2016 - 16:52 PM

Bonjour vegetalin
et meilleurs vœux de progression en AS3 ;)


Pour ton problème, c'est un simple souci de logique : il faut décomposer les étapes et les traiter une à la fois.
En fait, on décompose le problème qui paraît compliqué en petits problèmes simple et on les résous en s'arrangeant pour que chaque petit problème soit indépendant.

Exemple :
- le curseur clignotant. Il clignote à un rythme régulier. Utilise un Timer, fixe son rythme, écoute le et une fois sur 2 tu affiches le curseur ou pas. Pour ça, je garderais le texte déjà affiché dans une variable, et à chaque timer event, je collerais la variable (+ curseur si le compteur est pair)
- le texte : au moment du clic, départ de l'action, je stocke le texte à frapper dans une variable au format Array, lettre par lettre (tu sais faire ça avec split("")). Puis, j'utiliserais un timer à déclenchement unique, avec une valeur de délais aléatoire (petite fonction, je crois qu'on a déjà vu ça). A chaque déclenchement du timer, je rajoute à la variable affichée par le curseur, le premier caractère restant du texte au format array (la méthode shift() des Array est juste bien adaptée).

Le code en pièce jointe, avec commentaires, mais essaye de faire ta propre version, ça sera plus enrichissant pour toi (de toute façon, celle ci ne doit pas faire exactement ce que tu souhaites).



- Afficher le SWF -
Fichier joint  essai.swf   1.86 Ko   2 téléchargement(s)

Fichier(s) joint(s)

  • Fichier joint  essai.fla   95 Ko   1 téléchargement(s)


#3 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 05 January 2016 - 17:00 PM

Merci beaucoup Dldler, je vais voir le fla. Je ferai le truc à ma sauce et mettrai le code ici ;) quand ce sera ok. A plus tard :smile:

#4 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 11 January 2016 - 11:16 AM

Après quelques tests, désolé mais je n'arrive pas à faire ce que je veux du fla que tu m'as donné, dlder :sad: . Cela dit entre deux posts sur le forum, je continuais de chercher des trucs et j'ai trouvé un fla qui fait ce que je veux, directoss'. Je le mets en piece jointe à ce message... donc on va dire pb résolu et meme si je n'ai pas tout compris, j'ai tout de même fait une ou deux bidouille pour l'adapter à mon projet...

Prochaine étape, trouver une police chouette qui fasse "année 70/80" et qui gère le fameux caractère clignotant en fin de phrase... j'en ai pris quelques unes et vais tester tout ça...

On peut tester le prog ici pour l'instant...

http://vegetalain.fr.../Drenn2016.html

(mais chez moi ça ne marche pas sous firefox, peut-être que chez vous, si :roll: ?)

Il faut taper son texte en bas, devant le "U:>" et valider avec "Enter".
Tapez "mode recherche" pour obtenir des biographies, des recettes, des infos sur startrek et autres.
Il y a un filtre à grossièretés (dans la version exe, aubout de trois ou quatre grossièretés le programme se ferme)
On peut lui attribuer un cheveux sur la langue avec "mode cheveux on" et le retirer avec "mode cheveux off"...

Tout n'est pas encore terminé mais on va dire que c'est bien avancé x)

Affaire à suivre

Fichier(s) joint(s)



#5 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 January 2016 - 12:27 PM

Bonjour Alain.
La touche entrée est inopérante sur Safari et Chrome. Je ne peux pas tester…
?
Comment gère-tu la fin du focus sur le champ de texte de l'utilisateur ?

#6 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 11 January 2016 - 13:54 PM

Bonjour Dldler, alors je suis dans un cyber là, pas chez moi :mrgreen: mais il y a un listener qui attend que la touche "entrer" soit activée pour balancer le scan de tout l'as, puis la réponse adéquate... mais tu peux prendre le swf directement ;-) , tu devrais pouvoir le faire fonctionner sur ton ordi :

vegetalain.free.fr/Drenn2016.swf

#7 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 January 2016 - 15:55 PM

Non, ça ne marche pas plus.
Comment teste-tu la valeur de la touche enter ? Si c'est au format texte attention : sur PC ou Mac, ma valeur est différente de mémoire. \r ou \n, un truc comme ça.

Sinon, il y a un événement spécifique à écouter pour ça… Event.Change ? Je ne sais plus trop.

#8 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 11 January 2016 - 17:11 PM

Voilà la portion qui se charge de valider le texte. Une fois qu'on a appuyé sur la touche "Enter", les fautes sont corrigées, et selon le mode sélectionné, on lance la conversation standard, le mode recherche, ou les deux sujets de conversation supplémentaires. Le champ où l'on tape son texte s'appelle donc "lutilisateur"

//---------------------------------------------------------------------    ENTER
lutilisateur.addEventListener(KeyboardEvent.KEY_DOWN, clavier);
function clavier(event:KeyboardEvent):void {
    if (event.keyCode == Keyboard.ENTER) {
        lesfautes();
        //conversation standard
        if (zemode.text == "mode 1"){gogogo_01();}
        //mode recherche
        if (zemode.text == "mode 2"){gogogo_02();}
        //suivi de conversation 1
        if (zemode.text == "conv 1"){gogogo_03();}
        //suivi de conversation 2
        if (zemode.text == "conv 2"){gogogo_04();}
   
   
    }
}


#9 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 January 2016 - 17:54 PM

Le code fonctionne.
Donc un problème ailleurs.
Soit tu écoutes déjà le KEY_DOWN sur un autre élément, soit un souci d'encapsulation ?

Tu peux tenter avec un KEY_UP plutôt qu'un KEY_DOWN, ou avec les événements de type Event.CHANGE et FocusEvent.FOCUS_OUT.
Pas d'autre idée à première vue.

#10 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 11 January 2016 - 18:09 PM

Je viens de regarder, j'avais mis un autre "key_down" ailleurs avec un listener, mais c'était vis-à-vis du "stage", c'était pour détecter l'absence de frappe, et donc déclencher un timer pour le programme dise au bout d'un moment, "y'a quelqu'un?" x)... pour ça y'avait aussi un "key_up", alors j'ai viré le "key_down"...

Tu as un mac?
J'ai un pc et le swf ainsi que l'exe fonctionnent...

J'ai mis un nouveau swf en ligne

#11 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 12 January 2016 - 05:03 AM

Je vais tout copier-coller dans un nouveau projet as3 et tester étape par étape, comme ça je trouverai bien où ça bug :)...

#12 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 12 January 2016 - 14:58 PM

Bon alors j'ai tout recopier coller sauf quelques petites choses... et ça fonctionne sous mon navigateur (j'ai linux mint 17 et firefox 39.0.3)...

Donc il faut parler normalement, rester poli, taper "mode recherche" pour accéder à des infos (inventions, startrek, etc), p et "mode normal" pour revenir aux dialogues de base. Par défaut l'utilisateur s'appelle "humain", etc... et... eh bien j'attends je vois déjà si ça fonctionne donc mdr

A tester : http://vegetalain.fr.../Z576/Z576.html :roll:

Alors l'interface console je l'ai mise de côté pour ce test, l'important est que ça marche "online", bien que je destinais mon projet à une forme "exe"...

#13 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 13 January 2016 - 09:19 AM

OK.

Cette fois, ça fonctionne.
Je peux passer en mode recherche et en tapant des mots clés, obtenir des infos. C'est un peu dur à naviguer, pour revenir à la liste précédante proposée par exemple (petit voyage dans la section Startrek)…

Pour le mode normal, techniquement ça fonctionne, par contre je n'ai trouvé aucun sujet de discussion. J'ai toujours des réponses : pas compris, on en reparle plus tard, non(!), le sujet ne m'intéresse pas…

Petite idée : tu pourrais mémoriser tout le dialogue dans une variable, ajouter un bouton 'copier le dialogue' qui nous permettrait de te fournir un rapport. Tu verrais ainsi ce que l'on tente de faire et tu pourrais peut être améliorer le lancement d'une discussion ? Sinon, au premier abord, on reste paumé. Enfin, moi au moins.

#14 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 13 January 2016 - 10:10 AM

Bonjour. Alors oui c'est vrai que les suivis de discussion ne sont pas en place ; y'a rien. Et bonne idée pour le rapport... C'est vrai que jusqu'alors il n'y a que moi qui teste donc c'est un peu faussé puisque je sais ce que contient le chatbot. Je vois ça tout de suite x)

#15 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 13 January 2016 - 10:46 AM

C'est ok, j'ai rajouté un bouton pour sauvegarder la conversation. Pas de confirmation à l'appuie du bouton mais une fois cliqué, il faut ouvrir un fichier texte (avec notepad++ par exemple) et faire "coller", et ça donne ça :


Conversation :
vous : coucou
cbot : Salut.
vous : ca va?
cbot : Ca va. En plus je suis content de parler à quelqu'un donc tout va bien !


J'espère que ces rapports porteront leur fruit x)... j'ai hâte de voir ça.

#16 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 13 January 2016 - 11:40 AM

Citation

Conversation :
vous : bonjour.
cbot : Coucou.
vous : comment va-tu?
cbot : En analysant la situation avec calme, vous aurez plus de chances de trouver quoi faire.
vous : mais je suis calme.
cbot : Je ne comprends rien.
vous : je vois ca !
cbot : ... ?
vous : comment t'appelltu es?
cbot : C'est-à-dire?
vous : quel est ton nom?
cbot : Comment ça?
vous : tu sers a quoi?
cbot : Ma fonction est surtout de combler une certaine solitude, que cette dernière soit subie ou soit un choix délibéré!
vous : et tu preferes quoi?
cbot : Excusez-moi je n'ai pas compris ; que voulez-vous dire?
vous : tu veux parler de quoi?
cbot : De ce que vous avez fait hier, par exemple! Racontez-moi un peu ça.
vous : hier, je suis alle au travail, comme tous les jours de la semaine.
cbot : Comment ça?
vous : hier, j'ai travaille.
cbot : ... ?!
vous : et toi?
cbot : Je ne vois pas où vous voulez en venir.
vous : je cherche juste a faire la conversation…
cbot : Pardon?
vous : parle moi de toi.
cbot : Comment ça?
vous : de quoi tu veux parler?
cbot : J'aimerais parler de startrek.
vous : c'est nul startrek. en plus, je ne connais pas…
cbot : Si vous activez mon mode recherche, vous aurez accès à toutes les données disponibles sur startrek. Et davantage.
vous : oui, mais ca ne m'interesse pas.
cbot : Eh bien voilà qui est catégorique. Vous pouvez développer?
vous : bien sur. la science fiction est un passe temps oisif, un deni de realite de la part de personnes inadaptees au monde qui les entoure.
cbot : Eh bien voilà qui est catégorique. Vous pouvez développer?
vous : mais je viens de le faire !
cbot : Je ne comprends rien.
vous : je suis d'accord avec toi.
cbot : Oui. C'est étrange... C'est étonnant.
vous : pas tant que ca. tu n'es qu'une cervelle vide. Ça s'arrangera peut-etre avec le temps?
cbot : Oui, peut-être... c'est à voir...



#17 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 13 January 2016 - 11:47 AM

Citation

Conversation :
vous : parle moi de startrek
cbot : Si vous activez mon mode recherche, vous aurez accès à toutes les données disponibles sur startrek. Et davantage.
vous : active ton mode recherche
cbot : Excusez-moi je n'ai pas compris ; que voulez-vous dire?
vous : mode recherche
cbot : Que voulez-vous savoir? Sont à disposition des informations sur :

Les inventions
Les personnages célèbres
Les sites web
Les recettes
La série Startrek.
vous : je veux tout cavoir sur les inventions.
cbot : Les données ne sont pas disponibles.
vous : alors pourquoi me propose-tu les inventions?
cbot : L'information n'est pas disponible.
vous : inventions
cbot : Aucune donnée en ma possession n'est concernée par votre question.
vous : les inventions.
cbot : Je l'ignore. Reformulez votre question.
vous : quelles informations sont disponibles?
cbot : Je l'ignore. Reformulez votre question.
vous : startrek
cbot : Mes bases de connaissances inclues diverses informations relatives à la série :

Races stellaires
Equipages de vaisseaux
Navires stellaires
Vaisseaux ennemis
Infos sur Starfleet
Les films de Star Trek
La technologie Star Trek
La chronologie de Star Trek
Les quadrants dans star trek
La classification des planètes
Les types d'étoiles
Les planètes du Dominion
Les planètes de l'union cardassienne
Les planètes de l'Empire Romulien
Les Borgs
Matériel starfleet médical
La pharmacie de starfleet médical.

Sur quel sujet désirez-vous vous informer?
vous : parle moi des races stellaires
cbot : Il y a actuellement 87 races stellaires de répertoriées : Akaalis, Akritirians, Allos, Alsaurians, Androides, Arturis, Axanar, Banean ou benari, Bolian, Bomar, Borg, Botha, Briori, Caatati, Cardassians, Femelle caretaker - Sesperia, Cloud Creature, Cravic, Deuterium Species, Devore, Drayans, Dream Aliens, Enarans, Ferengi, Haakonians, Hanonians, Hazari, Hierarchy, Hirogen, Ilirians, Jaradas, Kazon, Klingon, Les Kohl, Komar, Krayden, Krenim, Ktarian, Kyrians, Malon, Mari, Menks, Explorateurs Mikhal, Mokra, Moneans, Nechani, Nezu, Numeri, Nyrians, Ocampas, Osaariens, Paraagans, Espece photonique, Pralor, Pseudoparasites, Continuum Q, Rakosan, Risans, Romuliens, Romunlanais, Sakarians, Programme de sanitation, Sheliaks, Sikarians, espèce 8472, Pirates de l'Espace, Steth, Swarm, Tak Tak, Talaxians, Tamariens, Taresian, Think Tank, Trabe, Turei, Uhnori, Varo, Vaadwaur, Valakiens, Vidiians, Void Aliens, Voth, Xarantines, Xindis, Xyrilliens.
vous : commencons par les bomar. j'aime bien le nom.
cbot : (4-174, 2374, the raven). Hostiles. Voyage intersideral. Isoles mis repandus sur un large espace dont ils interdisent le passage non controle.
vous : bovar?
cbot : L'information n'est pas disponible.
vous : startrek
cbot : Mes bases de connaissances inclues diverses informations relatives à la série :

Races stellaires
Equipages de vaisseaux
Navires stellaires
Vaisseaux ennemis
Infos sur Starfleet
Les films de Star Trek
La technologie Star Trek
La chronologie de Star Trek
Les quadrants dans star trek
La classification des planètes
Les types d'étoiles
Les planètes du Dominion
Les planètes de l'union cardassienne
Les planètes de l'Empire Romulien
Les Borgs
Matériel starfleet médical
La pharmacie de starfleet médical.

Sur quel sujet désirez-vous vous informer?
vous : races stellaires
cbot : Il y a actuellement 87 races stellaires de répertoriées : Akaalis, Akritirians, Allos, Alsaurians, Androides, Arturis, Axanar, Banean ou benari, Bolian, Bomar, Borg, Botha, Briori, Caatati, Cardassians, Femelle caretaker - Sesperia, Cloud Creature, Cravic, Deuterium Species, Devore, Drayans, Dream Aliens, Enarans, Ferengi, Haakonians, Hanonians, Hazari, Hierarchy, Hirogen, Ilirians, Jaradas, Kazon, Klingon, Les Kohl, Komar, Krayden, Krenim, Ktarian, Kyrians, Malon, Mari, Menks, Explorateurs Mikhal, Mokra, Moneans, Nechani, Nezu, Numeri, Nyrians, Ocampas, Osaariens, Paraagans, Espece photonique, Pralor, Pseudoparasites, Continuum Q, Rakosan, Risans, Romuliens, Romunlanais, Sakarians, Programme de sanitation, Sheliaks, Sikarians, espèce 8472, Pirates de l'Espace, Steth, Swarm, Tak Tak, Talaxians, Tamariens, Taresian, Think Tank, Trabe, Turei, Uhnori, Varo, Vaadwaur, Valakiens, Vidiians, Void Aliens, Voth, Xarantines, Xindis, Xyrilliens.
vous : bomar
cbot : (4-174, 2374, the raven). Hostiles. Voyage intersideral. Isoles mis repandus sur un large espace dont ils interdisent le passage non controle.
cbot : Vous vous sentez un peu seul ces temps-ci?
vous : non
cbot : Je l'ignore. Reformulez votre question.
vous : et toi?
cbot : Aucune donnée en ma possession n'est concernée par votre question.



#18 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 13 January 2016 - 15:07 PM

Oh mein Gott :D purée... je suis plié de rire.

Bon... euh... comment dire... hm... aurais-je assez des 365 jours de cette année pour faire un truc qui fonctionne? -_- hm..... voyons... aucune idée mais je vais faire ce que je peux :rolleyes:.

En tout cas merci de ce test au résultat évident : y'a du boulot.

Et effectivement une fois en mode recherche je ne suis pas assez clair, à rectifier...

#19 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 13 January 2016 - 15:56 PM

Pas si nul que ça ;-) La fin de la discussion générale est bluffante de réalisme.



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP