1. Einführung
Flash von Macromedia wird mittlerweile häufig im Internet verwendet, um die Inhaltsbeschreibung von Websites zu verbessern. Die jüngsten Flash-Veröffentlichungen von Macromedia (Flash 6 und Flash MX) haben deutlich gemacht, dass Macromedia Flash ernsthaft als bevorzugte Schnittstelle für die Entwicklung von Webanwendungen in Betracht zieht. Als Schnittstelle ist Flash möglicherweise eine gute Wahl; diese Wahl dient jedoch nicht dazu, Geschäftslogik, Abfrageverwaltung und Sicherheit zu ersetzen. Um als Webentwickler wirklich leistungsstarke Leistung und Funktionen der Enterprise-Klasse zu erzielen, benötigen Sie .NET-, Flash- und Rich-Description-Layer-Unterstützung in Kombination mit der .NET-Technologie von Microsoft.
Flash enthält ActionScript – eine Skriptsprache, die zum Hinzufügen von Interaktivität zu Animationen verwendet wird. Seit der Einführung von ActionScript in Flash 5 hat Macromedia es kontinuierlich von einer einfachen Skriptsprache zu einer ziemlich soliden Programmierfunktion verbessert, die immer noch viele Einschränkungen aufweist. In Flash MX 2004 führte Macromedia ActionScript 2.0 ein, das neue Funktionen und neue Möglichkeiten zur Codestrukturierung unterstützt. Um das Verständnis dieses Artikels zu erleichtern, sollten Sie zunächst einige Grundkenntnisse zum Erstellen von Flash-Sites mit ActionScript lesen.
Macromedia hat Methoden zur einfachen Integration externer Daten in Flash-Anwendungen eingeführt, um komplexere und robustere datengesteuerte Anwendungen zu ermöglichen. Flash und .NET bewerben sich beide als plattformübergreifende Lösungen und werden so zu natürlichen Partnern. Dennoch ist die Verknüpfung der beiden Technologien keine einfache Aufgabe. In diesem Artikel werden verschiedene Methoden zur Integration von Flash- und .NET-Anwendungen mit Ihnen besprochen.
2. Integrieren Sie Flash und ASP.NET
und betten Sie Flash-Animationen in ASP.NET-Seiten ein.
Macromedia Flash-Animationen werden durch gemeinsame Verwendung der OBJECT- und EMBED-Tags in .aspx-Seiten platziert. Das EMBED-Tag wurde ursprünglich von Netscape für die Verwendung mit Netscape 2.0 oder höher entwickelt. Später wurde dieses Tag vom Microsoft Internet Explorer (MSIE) übernommen. Aus Gründen der Browserkompatibilität können das MSIE-spezifische OBJECT-Tag und das EMBED-Tag zusammen verwendet werden. Der folgende HTML-Code zeigt die Verwendung von OBJECT-Tags und EMBED-Tags zum Einbetten einer Flash-Animation (*.swf-Datei):
3. Flash mit externen Daten verbinden
Es gibt drei Möglichkeiten, Flash-Animationen mit externen Daten zu integrieren: FlashVars, LoadVars und die neue FlashRemoting-Technologie. Eine der einfachsten Methoden besteht darin, externe Daten von einer ASPX-Seite an eine in eine Webseite eingebettete Flash-Animation zu übergeben, indem FlashVars verwendet werden, um Variablen im HTML-Teil des Codes zu übergeben. Auf die mit FlashVars festgelegten Werte dieser Variablen kann auf der Stammebene der Flash-Animation zugegriffen werden. Um in allen Browserumgebungen ausgeführt zu werden, muss dem FlashVars-Attribut ein Wert in den Tags OBJECT und EMBED zugewiesen werden.
Hier sind die FlashVars, die mit einem Objekt-Tag verwendet werden:
<PARAM Name="FlashVars" Value="init=yes&check=true">
Das Folgende sind die FlashVars, die mit dem EMBED-Tag verwendet werden:
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. Warum FlashVars verwenden?
Anstatt FlashVars auszuleihen, können Sie auch Variablen in HTML-Tags einfügen – fügen Sie sie über eine Abfragezeichenfolge am Ende der URL der .SWF-Datei hinzu und übergeben Sie sie dann an eine Flash-Animation. Bei diesem Ansatz liegt möglicherweise ein Problem vor, wenn diese Variable beim Laden der SWF-Datei erforderlich ist, da eine SWF-Datei heruntergeladen und ausgeführt werden sollte, bevor die Daten vom Server angefordert werden. Variablenwerte können auch in Flash über die Methode „Load Variables“ und JavaScript gesetzt werden. Jede dieser Methoden hat den Nachteil verzögerter und langsamer Reaktionszeiten. Aus diesem Grund sollten Entwickler FlashVars verwenden, um Daten von ASP.NET an Flash-Animationen zu übergeben. Die folgende Abbildung zeigt den Code zum Übergeben von Variablen als Abfragezeichenfolge:
Auf alle mit FlashVars übergebenen Variablen kann auf der Stammebene der Flash-Animation (_level0) zugegriffen werden. Um diese Werte innerhalb einer Flash-Animation abzurufen, können Sie eine dynamische Variable erstellen. Der folgende ActionScript-Code implementiert die Zuweisung von „initvalue“ in Flash:
_level0.initvalue = init;
5. Kommunikation zwischen Flash und Datenbank
Eine Flash-Animation kann nicht direkt auf eine Datenbank zugreifen. Flash kann jedoch über jede serverseitige Technologie wie ASP oder ASP.NET mit der Datenbank kommunizieren. Es gibt mehrere Möglichkeiten, diese Aufgabe zu erfüllen. In diesem Artikel erklären wir die LoadVariables-Methode und die sendAndLoad-Methode.
(1) Verwenden Sie die Methode „loadVariables“ im Animationsclip.
Die Methode „loadVariables“ des Animationsclips liest Daten aus einer externen Datei oder URL und legt den Wert für die Variable des Animationsclips fest. Sobald der Animationsclip instanziiert ist, wird die Ladeaktion des Animationsclips im Clip-Ereignis-Ereignishandler initiiert. Wenn der Animationsclip initialisiert wird, kann die Methode „loadVariables“ aufgerufen werden, um Variablen zu laden. Die Methode „loadVariables“ ist ein asynchroner Aufruf und Flash wartet nicht auf das Ergebnis des Aufrufs. Wenn Daten in einem LoadVariables()-Verhalten empfangen werden, wird das Datenverhalten des Animationsclips im Clip-Ereignis-Ereignishandler initialisiert.
Um die Verwendung dieser Methode zu demonstrieren, ruft dieses Beispiel den Namen und das Alter des Benutzers aus einer Datenbank ab, basierend auf einer ID, die aus einer Flash-Animation ausgewählt wurde. In der folgenden Abbildung wird die Methode „loadVariables“ der Animation verwendet, um Daten von einer ASPX-Seite „getUserData.aspx“ in das Animationsfragment zu laden. Hier übergibt ActionScript die ID des Benutzers – sein Name und sein Alter werden in der Flash-Animation als Abfragezeichenfolge an die ASPX-Seite angezeigt.
Die Seite getUserData.aspx ruft den ID-Wert aus der unten gezeigten Abfragezeichenfolge ab:
Jetzt kann ASP.NET diese Wert-ID an .NET-Geschäftskomponenten übergeben. In diesem Beispiel werden der Name und das Alter des Benutzers abgerufen:
Wie bereits in diesem Abschnitt erwähnt, wird das Datenverhalten des onClipEvent-Ereignishandlers des Animationsclips initialisiert, wenn Daten in einem LoadVariables()-Verhalten empfangen werden. Deklarieren Sie die folgenden dynamischen Variablen in der Flash-Animation: flashName und flashAge. Die folgende Abbildung zeigt den ActionScript-Code, der im onClipEvent-Handler der Flash-Animation verwendet wird, um den von der ASPX-Seite zurückgegebenen Wert abzurufen.
HINWEIS: Es ist wichtig, dass es sich um dieselbe Variable handelt, die auf der ASPX-Seite festgelegt wird. Im hier gezeigten Beispiel ist die Variable, auf die in der Flash-Animation zugegriffen wird, „name“ – dieselbe Variable, die auch auf der ASPX-Seite festgelegt wird (Response.Write("name="&User.name)).
Diese Werte können nun in Flash-Animationen verwendet werden.
(2) Verwenden Sie die sendAndLoad-Methode aus Animationsclips
Im heutigen Internet nimmt XML in Form eines Dokumentensystems als universelles Transportformat mit dem Potenzial, einen reibungslosen Datenaustausch auch zwischen unterschiedlichen Anwendungstypen zu ermöglichen, einen wichtigen Platz ein. XML bietet einen Gateway-Mechanismus für die Kommunikation zwischen Anwendungen – sogar Anwendungen auf einer Vielzahl unterschiedlicher Systeme. Solange Anwendungen Daten austauschen können (über HTTP, Dateifreigabe oder einen anderen Mechanismus) und über einen XML-Parser verfügen, können sie strukturierte Informationen austauschen, die sehr einfach zu verarbeiten sind.
Flash MX unterstützt die XML-Datenübertragung und es gibt verschiedene Servertechnologiemethoden wie ASP und ASP.NET für den Austausch von XML. Flash MX kann XML-Pakete senden und empfangen, indem es die XML-Klassen „load“, „send“ und „sendAndLoad“ oder den neuen XMLConnector von Flash MX verwendet. Letzteres kann zum Senden und Empfangen von Paketen über HTTP und zum Binden dieser an UI-Widgets in der Flash-Ebene verwendet werden.
Lassen Sie uns die sendAndLoad-Methode des FlashXML-Objekts diskutieren, eine beliebte Methode zur Implementierung architekturorientierter XML-Datenkommunikation, Ausnahmebehandlung und Leistung. Wir verwenden dieses einfache Beispiel für das Einfügen der Punktedetails eines Benutzers in eine Datenbank von einem Flash-Client und das Senden einer Erfolgs- oder Fehlernachricht zurück an den Flash-Client.
(3) Erstellen Sie ein XML-Paket in Flash
. Ein XML-Paket kann einfach wie folgt in Flash erstellt werden:
var sendXML:XML = new XML("<userid>123456</userid>");
Senden Sie ein XML-Paket an eine Serverseite Seite – es verwendet ASP/ASP.NET und verarbeitet das zurückgegebene XML-Paket.
Die Verwendung ist wie folgt:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
Dieses „xmlObject“ ist eine XML-Objektinstanz – es kapselt das XML, das an die .aspx-Seite gesendet werden muss Ziel-URL, die das XML-Objekt angibt; „targetXMLObject“ ist das XML-Objekt – es empfängt die von der Serverseite zurückgegebenen Informationen.
Die sendAndLoad-Methode sendet ein XML-Paket an eine serverseitige Vorlage und empfängt als Antwort ein XML-Paket – im Gegensatz zur send-Methode der XML-Klasse, die nur ein XML-Paket sendet und keinerlei Antwort erwartet. Jede dieser Methoden funktioniert auf ihre eigene Weise, es gibt jedoch einen wichtigen Unterschied: Die Sendemethode der XML-Klasse akzeptiert ein Ziel als Parameter – sie ermöglicht es Ihnen, ein neues Browserfenster zu öffnen oder den Inhalt des aktuellen Browserfensters zu ersetzen. Während die sendAndLoad-Methode ein XML-Paket als Parameter akzeptiert, wird kein neues Browserfenster gestartet. Da die send-Methode ein neues Browserfenster öffnet, können wir die Ausgabe des Browserfensters selbst sehen – was beim Debuggen äußerst nützlich sein kann.
Hinweis: Wenn die Flash-Datei, die den sendAndLoad-Aufruf ausgibt, in einem Webbrowser ausgeführt wird, befindet sich die Ziel-URL in derselben Domäne wie die Flash-Animation. Wenn Sie auch mit Anwendungen in verschiedenen Domänen kommunizieren müssen, finden Sie weitere Informationen unter „Cross Domain Data Loading“ unter
www.macromedia.com .
Der Code in der folgenden Abbildung zeigt, wie die sendAndLoad-Methode eines XML-Objekts verwendet wird, um mit einer ASPX-Seite zu kommunizieren und das vom Server zurückgegebene XML zu verarbeiten:
Der obige Code führt Folgendes aus:
· Lädt die XML-Zeichenfolge in ein XML-Objekt „userscore_xml“. Die Instanz enthält das XML, das an die ASP.NET-Seite auf der Remote-Serverseite gesendet wird.
·Setzen Sie das Attribut „ignoreWhite“ des XML-Objekts „ResponseXMLObj_xml“. Diese XML-Objektinstanz enthält das XML-Paket vom Server.
· Rufen Sie die sendAndLoad-Methode („userscore_xml“) des XML-Objekts auf, um XML an die serverseitige ASPX-Seite
http://localhost/MyTestApp/scoring.aspx zu senden und das zurückgegebene XML-Paket in der XML-Objektinstanz „ResponseXMLObj_xml“ zu speichern ".
·Setzen Sie die onLoad-Methode des XML-Objekts „ResponseXMLObj_xml“. Flash erhält die XML-Antwort von der serverseitigen ASPX-Seite zurück – sie wird in der onLoad-Methode des XML-Objekts verarbeitet.
· Anschließend wird das empfangene XML-Paket analysiert, um die erforderlichen Nachrichten auf dem Flash-Client anzuzeigen.
(4) Empfangen Sie das vom Flash der ASPX-Seite gesendete XML-Paket.
Die folgende Abbildung zeigt den Code zum Abschließen dieser Aufgabe:
Der obige Code führt Folgendes aus:
· Empfängt das vom Flash-Client gesendete XML (xmlDoc.Load(Request.InputStream)).
· Analysiert das empfangene XML und übergibt es an die Geschäftskomponente zum Einfügen in die Datenbank.
· Die erstellte XML-Nachricht wird an den Flash-Client zurückgesendet. Auf der Geschäftsebene ausgelöste Erfolgs- oder Ausnahmebedingungen werden entsprechend behandelt und in verschiedene XML-Nachrichten umgewandelt – diese Nachricht wird an den Flash-Client zurückgegeben. Der Flash-Client empfängt diese XML-Nachrichten und zeigt sie entsprechend an.
6. Fazit
Flash- und .NET-Technologien erfreuen sich heute auf dem Markt immer größerer Beliebtheit und dürften in immer mehr Anwendungsarchitekturen zu erfolgreichen Partnern werden. Diese beiden Techniken behandeln zum Teil die gleichen Probleme, unterscheiden sich jedoch grundlegend. Flash MX ermöglicht Websites die Interaktivität, während .NET beim Erstellen von Unternehmensanwendungen hilft. Wie in diesem Artikel erläutert, ist die Integration von Flash- und .NET-Anwendungen durchaus möglich. Bei jedem Schritt geht es darum, eine Entscheidung zu treffen – wie man diese beiden Teile verbindet und strategisch die richtige architektonische Planung durchführt.
Obwohl in diesem Bereich eine neue Generation von Architekturen rund um Flash Remoting an Dynamik gewinnt, wird es noch einige Jahre dauern, bis die in diesem Artikel besprochenen Methoden auf groß angelegte Anwendungen angewendet werden können.