Utiliser le Nova Web plugin

Le Nova Web plugin offre une interface de visualisation de fichier Nova pour Internet Explorer (version 6 et 7). Le format de fichier supporté est le mxc, qui est l'équivalent du format mxb avec les ressources associées embarquées directement dans le fichier. Des exemples de visualisation 3D temps réel avec ce plugin sont disponibles sur le site de Vertice à l'adresse http://www.vertice.fr/Demo.aspx?demoId=32.

Le fonctionnement de cette page du site de Vertice va être présenté en détails. Une liste des possibilités offertes par le Nova Web Plugin sera ensuite énoncée à la fin de cette documentation. Commençons par examiner les pré-requis pour un bon fonctionnement du Nova Web plugin.



Pré requis

L'utilisation du Nova web plugin nécessite la présence de composants du côté de la machine cliente (visualisant la page). Le poste client doit utiliser le navigateur web Internet Explorer (version 6.0 ou supérieure) pour afficher la page.

De plus DirectX 9.0c et le Service Pack 2 (contenant le Framework .NET nécessaire au bon fonctionnement du Nova Web Plugin), doivent être installés sur le PC client pour visualiser les scènes exécutables Nova.

DirectX 9.0c est téléchargeable directement à partir du site de Microsoft :
http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en

De plus, comme nous allons le voir dans la prochaine section, le Nova Web Plugin doit être déployé sur le poste client.



Scène de démonstration

En suivant le lien http://www.vertice.fr/Demo.aspx?demoId=32 on arrive sur la page suivante :



La page détecte automatiquement la présence ou non du Nova Web Plugin et modifie son contenu en conséquence. Après avoir cliqué sur lien "Installer le plugin" :



Il s'agit d'un installeur "classique" au format msi. Lire puis accepter la licence avant de pouvoir choisir un répertoire d'installation. Accepter puis lancer la page http://www.vertice.fr/Demo.aspx?demoId=32 :



Le plugin a été détecté sur la machine cliente : si on examine le code source de la page, on localise un script écrit en JavaScript :


<script language="javascript" type="text/javascript">

function OnLoad()

     try

     { 

          var id = document.getElementById("webplayer");

          id.Null();

          checkPlugin.style.display="none";

          installPlugin.style.display = "none";

     }

     catch (e)

     {

          checkPlugin.style.display="none";

          installPlugin.style.display = "";

     }

}


function OnUnload()

{

     try

     { 

          var id = document.getElementById("webplayer");

          id.Close();

     }  

     catch (e)

     {

     }

}

 </script>   

Script dans la page de plugin

On constate aussi que les méthodes OnLoad et OnUnload sont appelées lors du chargement/déchargement du corps de la page :


<body onload="OnLoad();" onunload="OnUnload();">

[…]

</body>

Appel des méthodes OnLoad et OnUnLoad

De plus, le script fait référence aux éléments webplayer, checkPlugin et installPlugin situés dans la balise de la page :


<div id="checkPlugin">

<asp:Label ID="lblVerifPlugin" runat="server" Text="Vérification de la présence du plugin Nova...">

</asp:Label>

</div>

Texte de vérification de la présence du plugin (checkPlugin)

Une chose importante à noter ici, c'est que le contenu du paramètre id (checkPlugin) de la balise div est référencé par le script (checkPlugin.style.display="none";). Si on utilise un autre identifiant, on devra aussi modifier le code du script correspondant.


<div id="installPlugin" style="display:none">

<asp:Label ID="lblPluginAvailable" runat="server" Text="Nova Web Plugin non détecté">

</asp:Label>

<br />

<a href="Nova Controls.msi">Installer le plugin</a><br />

</div>

 

Lien vers l'Installer du Nova Web plugin (installPlugin)


Une version de l'installer Nova Controls.msi peut-être récupérée à l'adresse : http://www.vertice.fr/userfiles/File/Nova%20Controls%202009.msi. Il suffit alors de modifier le chemin "href" de la balise "<a>" pour qu'il pointe vers la version récupérée puis copiée sur le serveur.


Enfin, l'objet web player en lui même : on prendra soin de synchroniser son identifiant avec le script (var id = document.getElementById("webplayer");)


<div id="webPlugin">

<object

id="webplayer" classid="clsid:BF65BD3A-E888-4326-B72A-1F2C706AD50E" height="400" name="webplayer" width="600">

              <asp:Label id="texte1" runat="server"></asp:Label>

        </object>

</div>

L'objet Web Player (webplayer)

  • Le paramètre classid sera toujours le même. Il identifie de manière unique le player web.
  • Les paramètres width et height permettent de spécifier la taille de la zone de rendu dans la page web.

Revenons sur la méthode OnLoad du Javascript :


function OnLoad()

    try

    { 

         var id = document.getElementById("webplayer");

         id.Null();

         checkPlugin.style.display="none";

         installPlugin.style.display = "none";

    }

    catch (e)

    {

         checkPlugin.style.display="none";

         installPlugin.style.display = "";

    }

}

La méthode OnLoad

  • On récupère la balise d'identifiant "webplayer", c'est à dire le Nova Web Player en lui même.

  • On tente d'appeler sa méthode Null (test de présence). Si le Nova Control n'a pas été installé, alors cela provoque une exception capturée par le code Javascript.

[...]

catch (e)

{

     checkPlugin.style.display="none";

     installPlugin.style.display = "";

}

[...]


Exception si Nova Control n'a pas été installé
  • Donc si le Nova Control n'a pas été installé, la balise de vérification de présence du plugin est masquée (la propriété display est mise à "none" ce qui provoque la disparition de l'élément côté client) alors que la balise d'installation du plugin (installPlugin) est passée de "none" initialement à "", ce qui provoque l'affichage de cet élément.
  • Si on peut appeler la méthode Null() du webplayer, c'est donc qu'il a été installé. Dans ce cas le code suivant est alors exécuté :

checkPlugin.style.display="none";

installPlugin.style.display = "none";

Exception si Nova Control a été installé

Donc si aucune erreur n'est levée, on masque la balise de vérification de présence du plugin ainsi que le lien vers l'installeur du Nova Control.



Les services offerts par le Nova Web Plugin : test de présence du Nova Web Plugin côté client

Comme nous l'avons vu précédemment, la méthode Null() permet de tester la présence du Nova Web Plugin sur le poste visualisant la page. Une exception est levée si le Nova Web Plugin n'est pas installé :


function OnLoad()

     try

     { 

           var id = document.getElementById("webplayer");

        id.Null();

        checkPlugin.style.display="none";

        installPlugin.style.display = "none";

     }

     catch (e)

     {

          checkPlugin.style.display="none";

        installPlugin.style.display = "";

     }

}

La méthode OnLoad utilise la méthode Null() pour tester la présence du Nova Web Plugin


Chargement d'une scène

<a href="#"

onclick="webplayer.SceneURL='http://www.vertice.fr/misc/mxc/satyr.mxc'"> 

<img src="../Images/explorer.png" border="0"/>

Satyre

</a>

Chargement d'une scène dans le Nova Web Player

Le chargement d'une scène s'effectue via la propriété SceneURL du player web. Il suffit de passer l'URL de la scène, le Nova Web Plugin s'occupe alors automatiquement du rapatriement et du chargement de la scène.



Changement de la caméra

<a href="#" onclick="webplayer.ChangeActiveCamera();">

Changer de caméra</a>

Changement de caméra dans le Nova Web Player

Le changement de caméra s'effectue via la méthode ChangeActiveCamera() du player web. Si plusieurs caméras sont présentes dans la scène, l'appel à cette méthode provoque le chargement de la prochaine caméra dans la liste (classée par identifiant).



Afficher un menu contextuel

Si on fait un clic droit dans le Nova Web Player, un menu contextuel s'affiche :



En effet, par défaut, la propriété ShowContextMenu de l'objet player web est positionnée à vrai. Si on ne veut pas d'affichage de menu contextuel, on fera :


<a href="#" onclick="webplayer.ShowContextMenu = false; webplayer.SceneURL='http://www.vertice.fr/misc/mxc/satyr.mxc'">  

<img src="../Images/explorer.png" border="0"/>

Satyre </a>

Chargement d'une scène dans le Nova Web Player sans affichage de menu contextuel


Exécuter un script

Le Nova Explorer permet aux utilisateurs de mettre en place des interactions et des actions dans la scène grâce à son éditeur de script (cf. Documentation du Nova Explorer, partie Scripts).


Si on génère du Nova Explorer un fichier .mxc contenant des scripts, il est possible d'appeler une méthode (sans paramètres) d'un des scripts directement dans le Nova Web Player via la méthode LaunchScript(nomduscript, nomdelamethodedanslescript).

Encore des questions ? Visitez notre forum