1. Introduction
Flash de Macromedia est désormais largement utilisé sur Internet pour améliorer la description du contenu des sites Web. Les récentes versions de Flash de Macromedia (Flash 6 et Flash MX) ont clairement montré que Macromedia envisageait sérieusement Flash comme interface de choix pour le développement d'applications Web. Pour une interface, Flash peut être un excellent choix ; cependant, ce choix ne consiste pas à l'utiliser pour remplacer la logique métier, la gestion des requêtes et la sécurité. Pour qu'un développeur Web puisse obtenir des performances réellement puissantes et des fonctionnalités de classe entreprise, vous avez besoin de la prise en charge de .NET, Flash et de la couche de description riche, combinée à la technologie .NET de Microsoft.
Flash inclut ActionScript, un langage de script utilisé pour ajouter de l'interactivité aux animations. Depuis l'introduction d'ActionScript dans Flash 5, Macromedia n'a cessé de l'améliorer, passant d'un simple langage de script à une fonctionnalité de programmation assez solide mais présentant encore de nombreuses limitations. Dans Flash MX 2004, Macromedia a introduit ActionScript 2.0, qui prend en charge de nouvelles fonctionnalités et de nouvelles façons de structurer le code. Pour rendre cet article plus facile à comprendre, vous devez d'abord lire quelques connaissances de base sur la création de sites Flash avec ActionScript.
Macromedia a introduit des méthodes pour intégrer facilement des données externes dans les applications Flash afin de permettre des applications basées sur les données plus complexes et plus robustes. Flash et .NET se présentent tous deux comme des solutions multiplateformes et deviennent ainsi des partenaires naturels. Pourtant, relier les deux technologies n’est pas une tâche simple. Cet article abordera avec vous plusieurs méthodes d'intégration d'applications Flash et .NET.
2. Intégrez Flash et ASP.NET
et intégrez des animations Flash dans des pages ASP.NET.
Les animations Macromedia Flash sont placées dans des pages .aspx en utilisant conjointement les balises OBJECT et EMBED. La balise EMBED a été initialement développée par Netscape pour fonctionner avec Netscape 2.0 ou supérieur. Plus tard, cette balise a été adoptée par Microsoft Internet Explorer (MSIE). Pour la compatibilité du navigateur, la balise OBJECT spécifique à MSIE et la balise EMBED peuvent être utilisées ensemble. Le code HTML suivant montre l'utilisation des balises OBJECT et EMBED pour intégrer une animation Flash (fichier *.swf) :
3. Connectez Flash aux données externes
Il existe trois façons d'intégrer des animations Flash avec des données externes : FlashVars, LoadVars et la nouvelle technologie FlashRemoting. L'une des méthodes les plus simples consiste à transmettre des données externes d'une page .aspx à une animation Flash intégrée dans une page Web en utilisant FlashVars pour transmettre des variables dans la partie HTML du code. Les valeurs de ces variables définies à l'aide de FlashVars sont accessibles au niveau racine de l'animation Flash. Pour s'exécuter dans tous les environnements de navigateur, l'attribut FlashVars doit se voir attribuer une valeur dans les balises OBJECT et EMBED.
Voici les FlashVars utilisés avec une balise d'objet :
<PARAM Name="FlashVars" Value="init=yes&check=true">
Voici les FlashVars utilisés avec la balise EMBED :
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. Pourquoi utiliser FlashVars ?
Au lieu d'emprunter FlashVars, vous pouvez également placer des variables dans des balises HTML : ajoutez-les à la fin de l'URL du fichier .SWF via une chaîne de requête, puis transmettez-la à une animation Flash. Il peut y avoir un problème avec cette approche - si cette variable est requise lors du chargement du fichier .SWF, car un fichier .SWF doit être téléchargé et exécuté avant que les données ne soient demandées au serveur. Les valeurs des variables peuvent également être définies dans Flash via la méthode "Load Variables" et JavaScript. Chacune de ces méthodes présente l'inconvénient d'avoir des temps de réponse lents et lents ; c'est pourquoi les développeurs doivent utiliser FlashVars pour transmettre les données d'ASP.NET aux animations Flash. La figure suivante montre le code permettant de transmettre des variables sous forme de chaîne de requête :
Toutes les variables transmises à l'aide de FlashVars sont accessibles au niveau racine de l'animation Flash (_level0). Pour récupérer ces valeurs au sein d'une animation Flash, vous pouvez créer une variable dynamique. Le code ActionScript suivant implémente l'attribution de « initvalue » dans Flash :
_level0.initvalue = init;
5. Communication entre Flash et la base de données
Une animation Flash ne peut pas accéder directement à une base de données. Cependant, Flash peut communiquer avec la base de données via n'importe quelle technologie côté serveur comme ASP ou ASP.NET. Il existe plusieurs façons d'accomplir cette tâche. Dans cet article, nous expliquerons la méthode LoadVariables et la méthode sendAndLoad.
(1) Utilisez la méthode loadVariables dans le clip d'animation.
La méthode loadVariables du clip d'animation lit les données d'un fichier externe ou d'une URL et définit la valeur de la variable du clip d'animation. Une fois le clip d'animation instancié, l'action de chargement du clip d'animation est lancée dans le gestionnaire d'événements d'événement de clip. Lorsque le clip d'animation est initialisé, la méthode loadVariables peut être appelée pour charger des variables. La méthode loadVariables est un appel asynchrone et Flash n'attend pas le résultat de l'appel. Lorsque des données sont reçues dans un comportement loadVariables(), le comportement des données du clip d'animation est initialisé dans le gestionnaire d'événements du clip.
Pour démontrer l'utilisation de cette méthode, cet exemple récupère le nom et l'âge de l'utilisateur à partir d'une base de données basée sur un identifiant sélectionné dans une animation Flash. Dans la figure ci-dessous, la méthode loadVariables de l'animation est utilisée pour charger des données dans le fragment d'animation à partir d'une page .aspx getUserData.aspx. Ici, ActionScript transmet l'identifiant de l'utilisateur - son nom et son âge seront affichés dans l'animation Flash sous forme de chaîne de requête sur la page .aspx.
La page getUserData.aspx récupère la valeur id de la chaîne de requête ci-dessous :
Désormais, ASP.NET peut transmettre cet identifiant de valeur aux composants métier .NET. Cet exemple récupère le nom et l'âge de l'utilisateur :
Comme mentionné précédemment dans cette section, le comportement des données du gestionnaire d'événements onClipEvent du clip d'animation est initialisé lorsque les données sont reçues dans un comportement loadVariables(). Déclarez les variables dynamiques suivantes dans l'animation Flash : flashName et flashAge. La figure suivante montre le code ActionScript utilisé dans le gestionnaire onClipEvent de l'animation Flash pour récupérer la valeur renvoyée par la page .aspx.
REMARQUE : c'est important : il s'agit de la même variable définie à partir de la page .aspx. Dans l'exemple présenté ici, la variable accessible dans l'animation Flash est "name" - la même variable qu'elle définit à partir de la page .aspx (Response.Write("name="&User.name)).
Ces valeurs peuvent désormais être utilisées dans les animations Flash.
(2) Utilisez la méthode sendAndLoad à partir de clips d'animation
Sur Internet d'aujourd'hui, XML occupe une place importante sous la forme d'un système de documents en tant que format de transport universel ayant le potentiel de permettre un échange fluide de données, même entre différents types d'applications. XML fournit un mécanisme de passerelle pour la communication entre les applications, même entre les applications situées sur un large éventail de systèmes différents. Tant que les applications peuvent partager des données (via HTTP, partage de fichiers ou un autre mécanisme) et disposent d'un analyseur XML, elles peuvent partager des informations structurées très faciles à traiter.
Flash MX prend en charge le transfert de données XML et il existe plusieurs méthodes technologiques de serveur telles que ASP et ASP.NET pour l'échange de XML. Flash MX est capable d'envoyer et de recevoir des paquets XML en utilisant les classes XML - charger, envoyer et envoyerAndLoad ou le nouveau XMLConnector de Flash MX. Le dernier peut être utilisé pour envoyer et recevoir des paquets via HTTP et les lier aux widgets de l'interface utilisateur dans la couche Flash.
Discutons de la méthode sendAndLoad de l'objet FlashXML, qui est une méthode populaire pour implémenter la communication de données XML orientée architecture, la gestion des exceptions et les performances. Nous utilisons cet exemple simple d'insertion des détails du score d'un utilisateur dans une base de données à partir d'un client Flash et de renvoi d'un message de réussite ou d'échec au client Flash.
(3) Créer un paquet XML dans Flash
Un paquet XML peut être facilement créé dans Flash, comme suit :
var sendXML:XML = new XML("<userid>123456</userid>");
Envoyer un paquet XML vers un serveur. page - il utilise ASP/ASP.NET et gère le paquet XML de retour.
L'utilisation est la suivante :
xmlObject.sendAndLoad (URL : String, targetXMLObject : XML) : Void
Ce "xmlObject" est une instance d'objet XML - il encapsule le XML qui doit être envoyé à la page .aspx ; cette "URL" est la page ; URL de destination qui spécifie l'objet XML ; « targetXMLObject » est l'objet XML - il recevra les informations renvoyées du côté serveur.
La méthode sendAndLoad envoie un paquet XML à un modèle côté serveur et reçoit un paquet XML en réponse - contrairement à la méthode send de la classe XML - qui envoie uniquement un paquet XML et n'attend aucun type de réponse. Chacune de ces méthodes fonctionne à sa manière, mais il y a une différence importante : la méthode send de la classe XML prend une cible comme paramètre - elle vous permet d'ouvrir une nouvelle fenêtre de navigateur ou de remplacer le contenu de la fenêtre de navigateur actuelle, while La méthode sendAndLoad prend un paquet XML comme paramètre - elle ne démarre pas une nouvelle fenêtre de navigateur. Étant donné que la méthode send ouvre une nouvelle fenêtre de navigateur, nous pouvons voir le résultat de la fenêtre du navigateur elle-même, ce qui peut être extrêmement utile pour le débogage.
Remarque : Si le fichier Flash émettant l'appel sendAndLoad s'exécute dans un navigateur Web, l'URL cible sera dans le même domaine que l'animation Flash. Si vous devez également communiquer avec des applications dans différents domaines, reportez-vous à « Chargement de données entre domaines » sur
www.macromedia.com pour plus d'informations.
Le code de la figure suivante montre comment la méthode sendAndLoad d'un objet XML est utilisée pour communiquer avec une page .aspx et traiter le XML renvoyé par le serveur :
Le code ci-dessus effectue les opérations suivantes :
·Charge la chaîne XML dans un objet XML "userscore_xml". L'instance contient le XML - qui est envoyé à la page ASP.NET côté serveur distant.
·Définissez l'attribut ignoreWhite de l'objet XML "ResponseXMLObj_xml". Cette instance d'objet XML contient le paquet XML du serveur.
·Appelez la méthode sendAndLoad ("userscore_xml") de l'objet XML pour envoyer du XML à la page .aspx côté serveur,
http://localhost/MyTestApp/scoring.aspx et stockez le package XML renvoyé dans l'instance d'objet XML "ResponseXMLObj_xml ".
·Définissez la méthode onLoad de l'objet XML "ResponseXMLObj_xml". Flash reçoit la réponse XML de la page .aspx côté serveur - elle est gérée dans la méthode onLoad de l'objet XML.
·Il analyse ensuite le paquet XML reçu pour afficher les messages nécessaires sur le client Flash.
(4) Recevez le package XML envoyé depuis le Flash de la page ASPX.
La figure suivante montre le code pour effectuer cette tâche :
Le code ci-dessus effectue les opérations suivantes :
· Reçoit le XML envoyé par le client Flash (xmlDoc.Load(Request.InputStream)).
· Analyse le XML reçu et le transmet au composant métier pour insertion dans la base de données.
· Le message XML formé est renvoyé au client Flash. Les conditions de réussite ou d'exception générées au niveau de la couche métier sont traitées en conséquence et converties en divers messages XML - ce message est renvoyé au client Flash. Le client Flash reçoit ces messages XML et les affiche en conséquence.
6. Conclusion
Les technologies Flash et .NET gagnent aujourd'hui en popularité sur le marché et sont susceptibles de devenir des partenaires efficaces dans un nombre croissant d'architectures d'applications. Ces deux techniques traitent certains des mêmes problèmes, mais sont fondamentalement différentes. Flash MX permet aux sites Web de bénéficier d'une interactivité, tandis que .NET permet de créer des applications d'entreprise. Comme expliqué dans cet article, l'intégration d'applications Flash et .NET est tout à fait possible. Chaque étape consiste à prendre une décision : comment relier ces deux parties et effectuer la bonne planification architecturale de manière stratégique.
Même si une nouvelle génération d'architectures autour de Flash Remoting prend de l'ampleur dans ce domaine, il faudra attendre plusieurs années avant que les méthodes évoquées dans cet article puissent être appliquées à des applications à grande échelle.