>
 
ATTENTION : Les informations contenues dans cette fiche sont obsolètes mais peuvent être interressantes dans le cadre de l'étude de sites internet anciens, Microsft n'assurant plus la gestion des agents.
Téléchargez la fiche Mise à jour le 25 mai 2009

Fiche Javascript : Microsoft Agent

Objet de la fiche

-----------------------

État de la fiche


Plan de la fiche

Avant propos

Tout le monde connaît les assistants office comme le petit trombone animé qui nous donne des conseils sous Word, Excel ... Il existe maintenant des  figurines animées (Merlin dans le cas de ce site) qui rendent les applications beaucoup plus attractives et interactives. Le personnage parle, se déplace et peut aussi optionnellement reconnaître et répondre à des commandes vocales en associant un mot à une action : lorsque le mot sera prononcé dans le microphone alors le programme exécutera l'action demandée.

Test de la configuration de l'utilisateur

Windows seulement Attention
Ne fonctionne que dans un monde Microsoft Windows : Navigateur Internet Explorer et Windows XP, 2000, ME, 98, NT

Cliquez sur le petit personnage Merlinpour faire un test rapide en local

  • Si vous obtenez une erreur du genre de celle ci :

Message d'erreur

  • Ou si rien ne se passe : pas d'affichage d'erreur, pas d'apparition d'un personnage en bas à droite de l'écran.
  • Ou si un personnage apparaît mais il ne bouge pas.
  • Ou un personnage apparaît, il bouge mais ne parle pas.

c'est que tous les composants ne sont pas installés sur votre poste de travail.

Pré requis utilisateur

  • Par défaut, sur certains systèmes d'exploitation comme Windows 2000, Windows XP, ou bien avec certains produits comme Microsoft Office 2000, MS Agent est déjà installé.
  • On considère que votre poste de travail est équipé d'une carte son en fonctionnement et éventuellement d'un microphone.
  • Vérifier que vous possédez bien les droits administrateur avant de commencer l'installation.

Installation des composants sur l'ordinateur de l'utilisateur

Méthode 1 : Télécharger d'un coup l'ensemble des composants nécessaires au bon fonctionnement .

Étape 1 :

Créez sur votre poste de travail  un dossier temporaire appelé par exemple Agent?.

Étape 2 :

Téléchargez le fichier "MSA_Pack_Merlin.zip"  (environ 11 M)et enregistrez le dans le dossier Agent.

Étape 3 :

Décompressez le fichier Zip

Étape 4 :

Dans le dossier Agent exécuter les différents fichiers .exe que vous venez de télécharger (les droits administrateur sont requis pour une installation correcte). Faites attention de ne pas en oublier.

Installer le logiciel de base

Exécutez le fichier  MSagent.exe.

Cette action installe le logiciel de base de l'Agent Microsoft. Notez que vous n'avez pas à télécharger ce fichier si vous utilisez  l'un des systèmes d'exploitation suivants : Microsoft Windows XP, Windows 2000 ou Windows Me. Ce composant est déjà installé sur votre ordinateur.

Installer la bibliothèque pour la langue française

Exécutez le fichier AgtX040C.exe(environ 128 K).

Les composants de langue sont des bibliothèques (DLL) qui sont utilisées par le logiciel de base pour les dialogues, les fenêtres, tooltips et les textes des 'bulles' dans une langue supplémentaire à l'anglais par défaut.  Cette librairie ne suffit pas par elle même pour faire parler le personnage distinctement, il faudra rajouter le module text-to-speech.

Installer les personnages

Exécutez le fichier Merlin.exe(environ 1,8 M).

Lorsque vous serez familiarisé avec cette application vous pourrez installer et utiliser d'autres personnages comme par exemple : le génie ( Genie.exe environ 1,6 M), l'oiseau  (peedy.exe environ 3,2 M), le chien (max.exe environ 700k) ou le majordome (james.exe environ 3,1 M).

Installer le moteur texte parole (Text to Speech) pour la langue française.

Exécutez le fichier lhttsfrf.exe(environ 2,24 M).

Le moteur Text to Speech permet la synthèse vocale des textes dits par le personnage.

Notez que pour fonctionner correctement la bibliothèque de langue doit être elle aussi téléchargée.

L'utilisation des moteurs Text to Speech est uniquement autorisée avec l'application Microsoft Agent. Pour son utilisation sur des pages web le concepteur doit préciser visiblement que la technologie Microsoft Agent character est utilisée.

Installer SAPI 4.0 runtime support

Exécutez  le fichier spchapi.exe (environ 830 K).

SAPI 4.0 runtime support doit être installé si votre système d'exploitation est Windows XP et que vous désiriez utiliser d'autres moteurs de conversion text to speech avec l'application Microsoft Agent.

SAPI 4.0 runtime support doit aussi être installé lorsque l'on utilise le moteur L&H TTS3000 avec les personnages de Microsoft Agent Genie, Merlin, Peedy and Robby. Ces personnages sont construits pour utiliser le moteur L&H TruVoice par défaut comme générateur de sons et SAPI 4.0a runtime est obligatoire pour l'initialisation de ces personnages (TTSModeID).

Installer Speech recognition engines

Exécutez le fichier actcnc.exe (environ 6 M).

Speech recognition engines permet sur reconnaissance vocale de commander le personnage. Attention cette reconnaissance n'est disponible que pour des ordres en anglais.

Étape 5 : Fin de procédure

Quittez le site, quitter le navigateur. Puis retenter votre chance, et cela devrait marcher.

Méthode 2 : Télécharger les composants à partir du Site Microsoft de référence.

http://www.microsoft.com/msagent/downloads/user.aspx

Programmer Microsoft Agent sur votre site internet

Méthode de programmation

  • Déclaration des objets.
  • Appel de fonctions javascript

A partir d'un bouton ou d'une image ou autre élément HTML

onclick= "javascript:
if (LoadLocalChar('Merlin',PersonnageTTSLangueFr,PersonnageTTSModeFrFemelle))
{
    Animation_MSA_Test();
    return false;
}"

Si le chargement du personnage à réussi ( fonction LoadLocalChar avec comme paramètres le nom du personnage, la langue et le timbre à utiliser), on lance une animation (Animation_MSA_Test() dans cet exemple).

Initialisation générale du personnage

Déclaration des objets et Agent Microsoft dans la partie <head></head>

<!--  Lite des objets à inclure dans votre page HTML
si vous voulez que l'internaute dispose de mises à jour automatiques. -->

<!--  SAPI 4.0a runtime Speech Recognition Engine . A utiliser en association Lernout & Hauspie TTS3000 -->
<object
classid="CLSID:161FA781-A52C-11d0-8D7C-00A0C9034A7E"
codebase="#VERSION=4,0,0,0">
</object>

<!--  Lernout & Hauspie TTS3000 Text-To-Speech Engines en français -->
<object
classid="CLSID:1D87F5B4-05F1-11D2-AD7C-0000F8799342"
codebase="#VERSION=1,0,0,0">></object>

<!--  Microsoft Agent language component français. Doit être chargé avant le control Agent Object -->
<object
classid="CLSID:C348040C-A7F8-11D1-AA75-00C04FA34D72"
codebase="#VERSION=2,0,0,0">
</object>

<!-- Agent Microsoft -->
<object id="AgentControl"
classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"
codebase="#VERSION=2,0,0,0">
</object>

Les variables et fonctions javascript utilitaires
Commentaires
  • La fonction LoadLocalChar(CharID,CharACS,Langue,Timbre) attend le paramètre CharID comme nom du personnage, le paramètre CharACS comme nom de fichier du personnage, le paramètre Langue qui va définir la langue du moteur texte-parole, et le paramètre Timbre qui va définir le type de voix (homme, femme etc). La fonction retourne true si le personnage est correctement chargé  et initialisé ou false si ce n'est pas le cas.

  • AgentControl.Characters.Load(paramètres) charge le personnage et rend le résultat dans la variable LoadReq.

  • AgentControl.RaiseRequestErrors à true permet  l'affichage des erreurs qui peuvent survenir lors de l'initialisation.

  • LoadReq.Status donne la valeur du status initié avec AgentControl.Characters.Load(CharID, CharACS). Si différent de 1 le personnage est correctement chargé.

  • Pour toute la suite du programme on initialise la variable Personnage comme  AgentControl.Characters.Character(PersonnageID).

  • Personnage.LanguageID = Langue va permettre d'utiliser le moteur texte-parole (TTS) correspondant au langage des personnages. On utilise les variables générales.
    • var PersonnageTTSLangueFr=0x40C; // Langue française pour le tts
    • var PersonnageTTSLangueUs=0x409; // Langue anglaise pour le tts

  • Personnage.TTSModeID=Timbre va permettre de sélectionner un timbre pour la voix. On utilise les variables générales :
    • var PersonnageTTSModeFrMale=
      "\{0879A4E1-A92C-11d1-B17B-0020AFED142E\}" /*voix française homme*/
    • var PersonnageTTSModeFrFemelle=
      "\{0879A4E0-A92C-11D1-B17B-0020AFED142E\}" /*voix française femme*/
    • var PersonnageTTSModeUSMale=
      "\{CA141FD0-AC7F-11D1-97A3-006008273008\}" /*voix Anglais US male*/

  • Les variables générales PersonnageCenterXPersonnageRightX, PersonnageCenterY et PersonnageBottomY sont initialisées en fonction de la taille de l'écran de l'utilisateur. Ces variables sont utilisées pour positionner facilement le personnage.

  • Personnage.Commands.Add() permet l'initialisation des commandes du menu click droit.

  • La fonction GestionErreur(NoErr) permet d'afficher le résultat en cas d'erreur d'initialisation.

Utiliser un personnage particulier

On peut installer divers personnages fournis par Microsoft mais aussi d'autres personnages disponibles sur Internet. On les sélectionnera en indiquant leur identificateur à la fonction LoadLocalChar(CharID,Langue,Timbre) lors de l'initialisation. En voici quelques exemples.

Exemple de personnages
Personnages Identificateurs
(CharID)
Aperçus Tests
Merlin le magicien Merlin Merlin Sélectionnez un personnage

 

 

 

Note : pour faire disparaître un personnage faire click droit sur le personnage puis cliquez sur 'Masquer'

Genie le génie Genie Génie
James le majordome James James
Max le chien Max Max
Peedy l'oiseau Peedy Peedy

Faire Apparaître / Disparaître le personnage

Les propriétés Show et Hide référencées sur la variable Personnage[] initialisée lors de l'appel de la fonction LoadLocalChar() permettent de faire apparaître ou disparaître le personnage.

  • Personnage['Merlin'].Show (apparition du personnage Merlin)
  • Personnage['Merlin'].Hide (disparition du personnage Merlin)



Animer le personnage

Généralités

La propriété Play() associée aux paramètres ci dessous et référencée sur la variable Personnage[] initialisée lors de l'appel de la fonction LoadLocalChar() permet d'animer le personnage.

Nota : Certains noms des paramètres ainsi que les animations correspondantes sont spécifiques au personnage. Les  animations ci dessous (à la suite du tableau) sont données pour le personnage Merlin.

Syntaxe : Personnage[].Play("Paramètre")

Paramètres d'animation des personnages
Paramètres Animations Merlin Génie James Max Peddy
Acknowledge hoche la tête en signe d'approbation X X X X X
Alert se tient en alerte X X X X X
AlertReturn cesse de se tenir en alerte       X  
Announce fait une annonce X   X   X
Blink ferme et ouvre les yeux X X X X X
Confused prend une allure confuse X X X   X
Congratulate présente ses congratulations X X X   X
Congratulate_2 2eme façon de présenter ses congratulations X X      
Decline prend une attitude de refus X X X   X
DoMagic1 effet magique X X X   X
DoMagic2 effet magique X X X   X
DontRecognize pardon, je n'ai pas entendu X X X   X
Explain explique X X X   X
GestureDown mouvement bras droit vers le bas X X X   X
GestureLeft mouvement bras droit vers la gauche X X X   X
GestureRight mouvement bras droit vers la droite X X X   X
GestureUp mouvement des deux bras vers le haut X X X   X
GetAttention attire votre attention X X X   X
GetAttentionContinued continue à attirer votre attention X X X   X
GetAttentionReturn fin attirer l'attention X X X   X
GlanceDown penche la tête vers le bas       X  
GlanceDownReturn cesse de pencher la tête vers le bas       X  
GlanceRight tourne la tête vers la droite       X  
GlanceRightReturn cesse de tourner la tête vers la droite       X  
Greet salut courbé X X X   X
Hearing_1 écoute : oreilles agrandies(1) X X X   X
Hearing_2 écoute : tête vers la droite(1) X X X   X
Hearing_3 écoute : tête vers la gauche oreille agrandie(1) X X     X
Hearing_4 écoute : tête vers la droite oreille agrandie(1) X X      
Hide disparaît X X X X X
Idle1_1 hoche légèrement la tête X X X   X
Idle1_2 se tourne légèrement sur la gauche X X X   X
Idle1_3 se tourne légèrement sur la droite X X X   X
Idle1_4 lève les yeux vers la droite X X X   X
Idle1_5 ?   X X    
Idle1_6 ?   X      
Idle2_1 tend sa baguette X X X   X
Idle2_2 croise les mains X X X   X
Idle2_3 ?   X X    
Idle3_1 baille X X X   X
Idle3_2 s'endort   X X   X
Idle3_3 ?         X
LookDown s'incline légèrement X X X   X
LookDownBlink s'incline légèrement et cligne des yeux X X X   X
LookDownLeft ?         X
LookDownLeftBlink ?         X
LookDownLeftReturn ?         X
LookDownReturn s'incline légèrement, cligne des yeux et revient à sa position initiale X X X   X
LookDownRight ?         X
LookDownRightBlink ?         X
LookDownRightReturn ?         X
LookLeft regarde sur la gauche X X X   X
LookLeftBlink regarde sur la gauche et cligne des yeux X X X   X
LookLeftReturn regarde sur la gauche et revient à sa position initiale X X X   X
LookRight regarde sur la droite X X X   X
LookRightBlink regarde sur la droite et cligne des yeux X X X   X
LookRightReturn regarde sur la droite et revient à sa position initiale X X X   X
LookUp regarde vers le haut X X X   X
LookUpBlink regarde vers le haut et cligne des yeux X X X   X
LookUpLeft ?         X
LookUpLeftBlink ?         X
LookUpLeftReturn ?         X
LookUpReturn regarde vers le haut  et revient à sa position initiale X X X   X
LookUpRight ?         X
LookUpRightBlink ?         X
LookUpRightReturn ?         X
MoveDown se met en position pour se déplacer vers le  bas X X X X X
MoveDownReturn revient à la position initiale avant MoveDown       X  
MoveLeft se met en position pour se déplacer vers la gauche X X X X X
MoveLeftReturn revient à la position initiale avant MoveLeft       X  
MoveRight se met en position pour se déplacer vers la droite X X X X X
MoveRightReturn revient à la position initiale avant MoveRight       X  
MoveUp se met en position pour se déplacer vers le haut X X X X X
MoveUpReturn revient à la position initiale avant MoveUp       X  
Pleased croise les mains X X X   X
Process prépare une mixture magique X X X   X
Processing prépare une mixture magique (1) X X X   X
Read lit X X X   X
Reading lit(1) X X X   X
ReadContinued continue de lire X X X   X
ReadReturn cesse de lire X X X   X
RestPose conserve sa pose X X X X X
Sad triste X X X   X
Search cherche dans sa boule de cristal X X X   X
Searching cherche dans sa boule de cristal (1) X X X   X
Show apparaît X X X X X
StartListening tend l'oreille X X X   X
StopListening se bouche les oreilles X X X   X
Suggest a une idée X X X   X
Surprised prend l'air surpris X X X   X
Think pense X X X   X
Thinking pense (1) X X X   X
Uncertain ne sait pas! X X X   X
Wave dit bonjour ou au revoir avec la main X X X X X
Write écrit X X X   X
Writing écrit (1) X X X   X
WriteContinued continue d'écrire X X X   X
WriteReturn cesse d'écrire X X X   X

Note  (1) : Animations en boucle.

Testez les animations relatives au personnage Merlin


Testez les animations relatives au personnage Max

Testez les animations relatives au personnage Génie


Testez les animations relatives au personnage Peedy

Testez les animations relatives au personnage James

Code générique utilisé


Déplacer le personnage

La propriété MoveTo()

La propriété MoveTo (PositionX, PositionY) référencée sur la variables Personnage[] initialisée lors de l'appel de la fonction LoadLocalChar() permet le déplacement du personnage sur l'écran de sa position initiale vers une nouvelle position de coordonnées X,Y. Les coordonnées sont référencées à partir du coin haut gauche de l'écran (0,0). X et Y sont des valeurs numériques.

Syntaxe MoveTo (X, Y). Exemple Personnage[].MoveTo (0, 0) positionne le personnage en haut à gauche de l'écran.

Rappelons que les variables PersonnagePosLeftX[], PersonnagePosRightX[] PersonnagePosTopY[], PersonnagePosBottomY[], PersonnagePosCenterX[], PersonnagePosCenterY[] et  sont à disposition  pour positionner facilement le personnage. Ces variables sont automatiquement initialisées dans la fonction LoadLocalChar(), en fonction des dimensions de l'écran de l'internaute.

Exemples de déplacements à l'aide de variables prédéfinies
Combinaisons Positions
MoveTo (PersonnagePosLeftX, PersonnagePosTopY) Coin haut gauche
MoveTo (PersonnagePosRightX, PersonnagePosTopY) Coin haut droit
MoveTo (PersonnagePosLeftX, PersonnagePosBottomY) Coin bas gauche
MoveTo (PersonnagePosRightX, PersonnagePosBottomY) Coin bas droit
MoveTo (PersonnagePosCenterX, PersonnagePosCenterY) Milieu écran
MoveTo (PersonnagePosLeftX, PersonnagePosCenterY) Milieu gauche
MoveTo (PersonnagePosRightX, PersonnagePosCenterY) Milieu droit
MoveTo (PersonnagePosCenterX, PersonnagePosTopY) Milieu haut
MoveTo (PersonnagePosCenterX, PersonnagePosBottomY) Milieu bas



Faire parler le personnage

Généralités

La propriété Speak ("Texte à dire", "URL fichier wave")  référencée sur la variables Personnage[] initialisée lors de l'appel de la fonction LoadLocalChar() permet de faire parler le personnage.

"Texte à dire" spécifie le texte que le personnage doit dire et "URL fichier wave", indique l'emplacement absolu ou relatif du fichier wav à utiliser à la place de la synthèse vocale (facultatif). Ces deux paramètres sont de type chaîne.

Si on utilise uniquement la synthèse vocale le paramètre "URL" peut être omis.


Syntaxe : Personnage[].Speak ("Texte à dire", "URL fichier sonore).

Exemples

  • sans fichier sonore : Personnage[].Speak ("Bonjour et bienvenue","").
  • avec fichier sonore : Personnage[].Speak ("Coucou", "Media/good2.wav").
     


Paramètres de la voix

Pour faire varier la voix de l'agent ou pour différentes choses, Microsoft à conçu une série de balises (avec leurs propriétés) à inclure dans le texte du personnage.
Les balises sont à mettre entre des "\", sous la forme : \Balise=valeur\

Attention à la syntaxe lors de l'écriture de vos scénarios dans description des balises : '\Chr="Whisper"\blabla..'. Chaque \ rencontré devra être précédé d'un autre \ pour signaler qu'il ne s'agit pas d'un caractère de commande : '\\Chr="Whisper"\\blabla..'. Attention aussi aux imbrications des quottes ' et ".

Balises de texte pour effet de son
Balises Actions sur ... Valeurs et Syntaxes Test
\Chr="Modes"\ Mode de prononciation du texte
  • "Normal" : Prononciation normalement.
  •  
    "Whisper" : Prononciation chuchotée.

  • "Monotone" : Prononciation monotone.
Personnage['Merlin'].Speak('\\Chr="Whisper"\\Bonjour je suis un agent Microsoft. Comment allez vous?');
\Ctx="Modes"\ Prononciation spécifique pour une adresse mail ou une adresse simple
 
  • "Unknown" : Texte par défaut : pas de changement.

  • "E-Mail" : Prépare l'agent à prononcer une adresse Mail.

  • "Address" : Prépare l'agent à prononcer une adresse ou un numéro de téléphone.
Personnage['Merlin'].Speak('Connectez vous à \\Ctx="E-Mail"\\monwebfacile@free.fr');
Personnage['Merlin'].Speak('Je réside au \\Ctx="Adress"\\2, rue  Musset 34561 Cucugnan');
\Emp\ Prononciation accentuée Pas de valeurs additionnelles
Personnage['Merlin'].Speak('Bonjour je suis un agent \\Emp\\Microsoft. Comment allez vous?');
\Spd=X\ Nombre de mots dits par minute 140 est une bonne valeur moyenne pour un débit acceptable
Personnage['Merlin'].Speak('\\Spd=140\\Bonjour je suis un agent Microsoft. Comment allez vous?');
\Pit=k\ Fréquence de la voix k peut prendre des valeurs comprises entre 50 et 400. Valeur par défaut 50hz.
Personnage['Merlin'].Speak('\\Pit=50\\Bonjour je suis un agent Microsoft. Comment allez vous?');
\Vol=Y\ Niveau sonore de la voix du personnage Varie de 0 (silence) jusqu'à 65535 (max)
Personnage['Merlin'].Speak('je suis un agent Microsoft. \\Vol=30000\\Comment allez vous?'):
\Pau=Z\ Introduit une pose dans la diction Z est la valeur de la pause en millisecondes
Personnage['Merlin'].Speak('Bonjour,\\Pau=2000\\ je suis un agent Microsoft. Comment allez vous?');
\Map="Texte Parlé"="Texte Bulle"\ Le personnage dit quelque chose différent du contenu de la bulle  
Personnage['Merlin'].Speak("\\Map=\"Ma bulle n\'affiche pas ce que je dis !\"=\"Écoutez bien\"\\");
\Mrk=xxxxxxx\ Ajoute un marque-page (BookMark), dans le texte. Cela ne change rien à la voix mais génère un événement OnBookMark  associé au personnage et permet d'associer une action externe.(1) 0 < x x x x x x x x
Pas de valeurs additionnelles
Personnage['Merlin'].Speak('\\Mrk=1\\');
\Lst\ Répétition du dernier texte (y compris les balises) Pas de texte suivant cette balise
Personnage.Speak('Bonjour je suis un agent \\Emp\\Microsoft. Comment allez vous?').
Personnage['Merlin'].Speak('\\Lst\\');
\Rst\ Remet toutes les balises aux valeurs par défaut. Pas de valeurs additionnelles  
Personnage['Merlin'].Speak('\\Rst\\','');

Note (1)

Dans la partie <head></head> on défini le script pour gérer les marque-pages (Bookmark).

<script type="text/javascript" for="AgentControl" event="Bookmark(BookmarkID)">
<!--
// Utilisation des Marque Pages
    switch(BookmarkID) {
      case 1:
          alert("Je suis le résultat d'un évènement déclenché par le Marque-Page de valeur 1");
     break;
   }
//-->
</script>

Remplacer les voix de synthèse par un fichier son

Le fichier son au format .wav doit se trouver sur l'ordinateur de l'internaute. Si vous n'avez pas de fichier faisant l'affaire vous pouvez télécharger celui-ci (Merlin.wav) et le sauvegarder ou bon vous semble.

Décrivez le chemin complet pour accéder à votre fichier :
Exp : c:\Merlin.wav

Testez le résultat avec ce fichier

Si le personnage apparaît et disparaît très rapidement sans parler c'est que le fichier .wav, ou(et) le chemin d'accès, ou(et) la syntaxe sont incorrects.

Syntaxe utilisée

Personnage[].Speak "Coucou", "..................\Merlin.wav"

Attention à la syntaxe lors de l'écriture de vos scénarios dans description du chemin : 'xxxxx\yyyy\yyyy\aaa.wav'. Chaque \ rencontré devra être précédé d'un autre \ pour signaler qu'il ne s'agit pas d'un caractère de commande : 'xxxxx\\yyyy\\yyyy\\aaa.wav'

Afficher une bulle

Style général de la bulle

Le style de la bulle est défini par une valeur hexadécimale codée sur 4 octets

  • Le premier octet agit sur la visibilité de la bulle (bit 0), son adaptation automatique (bit 1), la fermeture automatique en fin de texte (bit 2), l'affichage immédiat ou au fil de l'animation(bit 3).
  • Le deuxième octet ne nous concerne pas
  • Le troisième octet bits (16-23) gère le nombre de caractères par ligne dans la bulle (avec bit 1 d'adaptation automatique à 0).
  • Le quatrième octet (bits 24-31) gère le nombre de ligne dans la bulle (avec bit 1 d'adaptation automatique à 0).

Exemple : Personnage[].Balloon.Style=0x330000F;

Style du texte

Personnage[].Balloon.FontName = "Comic Sans MS"
Personnage[].Balloon.FontSize = 14

Taille du personnage

Par défaut la taille de Merlin est de 128px par 128px mais on peut la modifier

Personnage[].Width = 179;
Personnage[].Height = 179;

Gestion des évènements

Actuellement JavaScript ne dispose pas de syntaxe d'évènement pour des objets non-HTML. Uniquement pour le navigateur Internet Explorer on peut utiliser la syntaxe suivante :

 <script> tag's For…Event syntax:

<script language="javascript" for="object" event="event()">
actions…
</script>

Un exemple complet

Démo

 

Quelques points particuliers de la démo

 

Pour aller plus loin

http://msdn.microsoft.com/en-us/library/aa163326.aspx

 Application au projet de site web

Laissez libre cours à votre imagination pour imager une telle animation pour le site 'La Boutique du Fleuriste'