Einführung in Richtlinien für SWF-Anwendungen

Wie Sie am besten Animate-Anwendungen erstellen, hängt davon ab, welche Anwendung Sie mithilfe welcher Technologie erstellen.

Eine Onlineanwendung gestattet es einem Benutzer, mit einer Website zu interagieren. Beispielsweise werden Informationen vom Benutzer eingeholt (z. B. Benutzername und Kennwort für eine Registrierung), Informationen werden zur Site hinzugefügt (wie bei einem Forum) oder die Benutzer interagieren in Echtzeit mit anderen Sitebesuchern (wie bei einem Chatraum oder einer interaktiven Notiztafel). Abhängig von der Interaktion werden die Ergebnisse vom Server häufig in die SWF-Datei eingefügt. Bei den vorangegangenen Beispielen handelt es sich um Anwendungen, bei denen die Benutzer und verschiedene Arten von Serverinteraktionen beteiligt sind. Bei einer Website, von der keine Besucherinformationen oder -daten verwendet werden, handelt es sich nicht um eine Anwendung (sondern z. B. um ein Portfolio, eine Cartoon-Animation oder eine statische Informationssite). Animate-Anwendungen enthalten einen interaktiven Prozess zwischen dem Benutzer, einer Webanwendung und einem Server. Der grundlegende Ablauf lautet wie folgt:

  1. Ein Benutzer gibt Informationen in eine SWF-Datei ein.

  2. Die Informationen werden in Daten umgewandelt.

  3. Die Daten werden formatiert und an einen Webserver gesendet.

  4. Die Daten werden vom Webserver gesammelt und an einen Anwendungsserver gesendet (z. B. ColdFusion, PHP oder ASP).

  5. Die Daten werden verarbeitet und an den Webserver zurückgesendet.

  6. Der Webserver sendet die Ergebnisse an die SWF-Datei.

  7. Die SWF-Datei empfängt die formatierten Daten.

  8. Die Daten werden von ActionScript verarbeitet, damit sie von der Anwendung verwendet werden können.

Beim Erstellen einer Anwendung müssen Sie ein Datenübertragungsprotokoll auswählen. Die Anwendung wird vom Protokoll darauf aufmerksam gemacht, dass Daten gesendet oder empfangen werden, in welchem Format die Daten übertragen werden und wie die Reaktion des Servers verarbeitet wird. Nachdem Daten von der SWF-Datei empfangen wurden, müssen sie bearbeitet und formatiert werden. Bei Verwendung eines Protokolls brauchen Sie sich keine Sorgen zu machen, dass Daten ein unerwartetes Format haben. Bei der Übertragung von Daten mithilfe von Name-Wert-Paaren, kann überprüft werden, wie die Daten formatiert sind. Prüfen Sie, ob die Daten korrekt formatiert sind, damit keine Daten im XML-Format empfangen werden und damit der SWF-Datei bekannt ist, welche Daten zu erwarten und zu bearbeiten sind.

Erfassen und Formatieren von Daten

Anwendungen beruhen auf der Interaktion von Benutzern mit der SWF-Datei. Häufig ist es erforderlich, dass Benutzer Daten in Formulare eingeben. Animate bietet viele Möglichkeiten, um Daten in Animate-Anwendungen einzugeben und zu formatieren. Diese Flexibilität beruht zum einen auf den über die Benutzeroberfläche verfügbaren Funktionen für Animationen und kreative Kontrolle und zum anderen auf der mithilfe von ActionScript ausführbaren Fehlerüberprüfung.

Das Erstellen von Formularen zur Datenerfassung mithilfe von Animate bietet die folgenden Vorteile:

  • erhöhte Steuerung bei der Gestaltung

  • verringerter oder kein Bedarf für eine Seitenaktualisierung

  • Wiederverwendung allgemeiner Elemente

    Tipp: Die von Benutzern eingegebenen Informationen werden in einem gemeinsamen Objekt auf dem Computer des Benutzers gespeichert. Gemeinsame Objekte gestatten es, Daten auf dem Computer des Benutzers zu speichern, d. h. sie ähneln Cookies. Weitere Informationen zu gemeinsamen Objekten finden Sie im Abschnitt zur sharedObject-Klasse im „ActionScript 2.0-Referenzhandbuch“ oder „Komponenten-Referenzhandbuch für ActionScript 3.0“.

Senden und Verarbeiten von Daten

In der Regel müssen Informationen vor einer Übertragung an den Server verarbeitet werden, damit sie ein für den Server verständliches Format haben. Nachdem die Daten auf dem Server eingegangen sind, können sie auf verschiedene Arten bearbeitet werden. Anschließend werden sie wieder in einem für die SWF-Datei annehmbaren Format (von Name-Wert-Paaren bis zu komplexen Objekten) zurückgesendet.

Hinweis:

Auf dem Anwendungsserver muss der MIME-Typ für die Ausgabe auf application/x-www-urlform-encoded eingestellt sein. Falls dieser MIME-Typ fehlt, ist das Ergebnis im Allgemeinen bei Erreichen von Animate unbrauchbar.

In der folgenden Tabelle werden mehrere Optionen erläutert, um Daten mit Animate an einen Server zu senden und um Daten zu empfangen:

Daten senden

Beschreibung

LoadVars.send und LoadVars.sendAndLoad

Sendet Namen-Wert-Paare zur Verarbeitung an ein serverseitiges Skript. LoadVars.send sendet Variablen an ein Remote-Skript und ignoriert jede Antwort. LoadVar.sendAndLoad sendet Namen-Wert-Paare an einen Server und lädt oder parst die Antwort in ein LoadVars-Objekt.

XML.send und XML.sendAndLoad

Ähnlich wie LoadVars, aber XML.send und XML.sendAndLoad senden XML-Pakete anstelle von Namen-Wert-Paaren.

getURL

Mithilfe der getURL()-Funktion oder MovieClip.getURL-Methode können Sie Variablen von Animate an ein Bild oder Popupfenster senden.

Remoting

Ermöglicht einen einfachen Austausch von komplexen Informationen zwischen Animate und ColdFusion, ASP.NET, Java und anderen. Außerdem können mit Animate Remoting auch Web Services in Anspruch genommen werden.

Webservices

Adobe Animate enthält die WebServiceConnector-Komponente, die es ermöglicht, eine Verbindung zu remoten Web Services herzustellen, Daten zu senden und zu empfangen sowie eine Bindung zwischen Ergebnissen und Komponenten herzustellen. Animate-Entwickler haben damit die Möglichkeit, schnell Rich-Internet-Anwendungen zu erstellen, ohne auch nur eine ActionScript-Zeile schreiben zu müssen.

Bei der Inanspruchnahme von remoter Web Services mithilfe von WebServiceClasses ist es unter Umständen erforderlich, komplexen ActionScript-Code zu schreiben.

Laden und Überprüfen von Daten

Es empfiehlt sich, abgerufene Informationen zu überprüfen, bevor die Daten an den Server gesendet werden. Dadurch wird die Belastung des Remote-Servers verringert, da weniger Anfragen behandelt werden müssen, wenn Benutzer erforderliche Felder nicht ausfüllen. Verlassen Sie sich bei einer Anwendung niemals ausschließlich auf eine clientseitige Überprüfung; eine serverseitige Überprüfung muss ebenfalls stattfinden.

Selbst wenn Sie ein einfaches Registrierungs- oder Anmeldeformular erstellen, muss überprüft werden, dass der Name und das Kennwort eingegeben wurden. Lassen Sie dies überprüfen, bevor die Anfrage an das serverseitige Skript gesendet und auf ein Ergebnis gewartet wird. Verlassen Sie sich niemals ausschließlich auf eine serverseitige Überprüfung. Wenn ein Benutzer nur einen Benutzernamen eingibt, dann muss das serverseitige Skript die Anfrage empfangen, die gesendeten Daten überprüfen und eine Fehlermeldung an die Animate-Anwendung zurücksenden, die besagt, dass sowohl Benutzername als auch Kennwort erforderlich sind. Und wenn nur eine clientseitige Überprüfung erfolgen würde (innerhalb der SWF-Datei), könnte jemand die SWF-Datei hacken, die Überprüfung umgehen und Daten an den Server senden, um die fehlerhaften Daten zu übermitteln.

Die clientseitige Überprüfung kann sehr einfach sein und beispielsweise überprüfen, dass ein Formularfeld mindestens ein Zeichen lang ist oder dass ein numerischer Wert und nicht ein String eingegeben wurde. Um beispielsweise eine E-Mail-Adresse zu überprüfen, muss sichergestellt werden, dass das Textfeld in Animate nicht leer ist und mindestens das @-Zeichen und einen Punkt () enthält.) enthält. Eine serverseitige Überprüfung muss komplexer ausfallen, und es muss überprüft werden, ob die E‑Mail-Adresse zu einer gültigen Domäne gehört.

Sie müssen ActionScript-Code schreiben, mit dem die Daten verarbeitet werden, die vom Server in die SWF-Datei geladen werden. Nachdem die Daten in die SWF-Datei geladen wurden, kann von dort aus darauf zugegriffen werden. Mithilfe von ActionScript-Code kann geprüft werden, ob die Daten vollständig geladen wurden. Verwenden Sie Rückruffunktionen oder Listener, um ein Signal zu senden, wenn die Daten in das Dokument geladen wurden.

Daten, die geladen werden, können auf verschiedene Weise formatiert sein:

  • Beim Laden von XML verwenden Sie XML-Klassenmethoden und -eigenschaften, um Daten zu parsen und zu verwenden. Bei Name-Wert-Paaren werden die Paare zu Variablen und können wie Variablen bearbeitet werden.

  • Sie erhalten unter Umständen Daten von einem Web Service oder von Animate Remoting.

In beiden Fällen könnten Sie komplexe Datenstrukturen, wie Arrays, Objekte und Datensätze empfangen, die geparst und angemessen gebunden werden müssen.

Fehlerverarbeitung und Debuggen

Ihre Anwendung muss so robust sein, dass bestimmte Fehler erwartet und angemessen verarbeitet werden.

Eine der besten Möglichkeiten zur Fehlerverarbeitung in ActionScript 2.0 sind die try-catch-finally-Blöcke, mit denen Sie benutzerdefinierte Fehler ausgeben und erfassen können. Durch das Erstellen von benutzerdefinierten Fehlerklassen können Sie Code in der gesamten Anwendung wieder verwenden, ohne den Fehlerverarbeitungscode neu schreiben zu müssen. Weitere Informationen zum Ausgeben von benutzerdefinierten Fehlern finden Sie im Abschnitt zur Error-Klasse im ActionScript 2.0-Referenzhandbuch. Weitere Informationen zu try-catch-finally-Blöcken finden Sie im Abschnitt zu try..catch..finally im ActionScript 2.0-Referenzhandbuch.

In ActionScript 3.0 verwenden Sie die flash.errors-Klasse, um Fehler abzufangen.

Weitere Informationen finden Sie unter „Verarbeiten synchroner Fehler in Anwendungen“ im Handbuch Programmieren mit ActionScript 3.0.

Organisieren von Dateien und Speichern von Code

Berücksichtigen Sie die folgenden Richtlinien, bevor Sie damit beginnen, Dateien zu organisieren und Code zu speichern:

  • Haben Sie die SWF-Datei in mehrere SWF-Dateien unterteilt? Falls ja, wie sollen sie interagieren?

  • Welche Elemente können gemeinsam von SWF-Dateien verwendet werden?

  • Welche Dateien werden dynamisch geladen?

  • Wie und wo wird ActionScript-Code gespeichert?

    Speichern Sie bei der Entwicklung einer Anwendung den serverseitigen Code und die serverseitigen Dateien in einer logischen Verzeichnisstruktur, die der in einem ActionScript-Paket ähnelt. Dies vereinfacht es, den Code gut organisiert zu speichern, und reduziert das Risiko, dass der Code überschrieben wird.

    Bei größeren Anwendungen empfiehlt es sich, die Client-/Serverkommunikation und Dienste in Klassen einzubinden. Aus der Verwendung von Klassen ergeben sich die folgenden Vorteile:

  • Sie können den Code in anderen SWF-Dateien wieder verwenden.

  • Sie können den Code an einer zentralen Stelle bearbeiten und alle SWF-Dateien aktualisieren, indem Sie sie erneut veröffentlichen.

  • Sie können eine API erstellen, mit der verschiedene UI-Elemente oder andere Elemente mit ähnlichen Funktionen bearbeitet werden können.

Verwenden des MVC-Entwurfsmusters

Durch das MVC-Entwurfsmuster werden die Informationen, die Ausgabe und die Datenverarbeitung in der Anwendung getrennt. Die Anwendung ist in drei Elemente unterteilt: Modell, Ansicht und Controller. Jedes Element bearbeitet einen anderen Teil des Prozesses.

Modell

Enthält die Anwendungsdaten und -regeln. Ein großer Teil der Verarbeitung in der Anwendung erfolgt in diesem Teil des Entwurfsmusters. Das Modell enthält auch etwaige Komponenten (wie etwa CFCs, EJBs und Web Services) und die Datenbank. In diesem Teil des Prozesses werden zurückgegebene Daten nicht für die Benutzeroberfläche (oder das Front-End) der Anwendung formatiert. Die zurückgegebenen Daten können auf verschiedenen Benutzeroberflächen (oder Ansichten) verwendet werden.

Ansicht

Bearbeitet das Front-End der Anwendung (die Oberfläche, mit der der Benutzer interagiert) und rendert den Inhalt des Modells. Die Oberfläche bestimmt, wie die Daten des Modells dargestellt werden und gibt die Ansicht für den Benutzer aus. Außerdem gibt sie dem Benutzer die Möglichkeit, auf die Anwendungsdaten zuzugreifen oder sie zu bearbeiten. Wenn sich das Modell ändert, wird die Ansicht durch Senden oder Abfragen von Daten entsprechend aktualisiert. Wenn Sie eine gemischte Webanwendung erstellen (z. B. eine, bei der Animate mit anderen Anwendungen auf der Seite interagiert), sollten Sie die unterschiedlichen Oberflächen als Teil der Ansicht im Entwurfsmuster berücksichtigen. Vom MVC-Entwurfsmuster wird die Bearbeitung einer Vielzahl von Ansichten unterstützt.

Controller

Bearbeitet die Anforderungen des Modells und der Ansicht zur Bearbeitung und Anzeige von Daten und enthält in der Regel eine große Menge Code. Abhängig von Benutzeranfragen, die über die Oberfläche (oder Ansicht) eingehen, wird vom Controller ein Teil des Modells aufgerufen. Außerdem enthält er anwendungsspezifischen Code. Da es sich um anwendungsspezifischen Code handelt, kann er in der Regel nicht wieder verwendet werden. Die anderen Komponenten im Entwurfsmuster können jedoch wieder verwendet werden. Vom Controller werden Daten weder verarbeitet noch ausgegeben. Auf der Grundlage der Benutzeranfrage entscheidet er, welcher Teil der Modell- oder Ansichtskomponente aufgerufen werden muss und bestimmt, wohin die Daten gesendet und wie die zurückgegebenen Daten formatiert werden. Der Controller stellt sicher, dass Ansichten auf die anzuzeigenden Teile der Modelldaten zugreifen können. Im Allgemeinen übermittelt und reagiert der Controller auf Änderungen, die das Modell und die Ansicht betreffen.

Jedes Teil des Modells wird als eigenständige Komponente im gesamten Prozess erstellt. Wenn Sie ein Teil des Modells ändern (z. B. die Oberfläche), werden dadurch in der Regel keine Änderungen an anderen Prozessteilen erforderlich, wodurch weniger Probleme auftreten. Wenn das Entwurfsmuster korrekt erstellt wurde, können Sie die Ansicht ändern, ohne das Modell oder den Controller bearbeiten zu müssen. Wenn Ihre Anwendung nicht mit MVC arbeitet, kann sich jede Änderung wellenförmig über den gesamten Code hinweg ausbreiten. Dadurch werden viele weitere Änderungen erforderlich, die bei Verwendung eines spezifischen Entwurfsmusters nicht anfallen würden.

Ein wichtiger Grund für die Verwendung des MVC-Musters, ist die Trennung von Daten und Logik von der Benutzeroberfläche. Durch eine Trennung dieser Prozessteile können Sie über mehrere unterschiedliche Benutzeroberfläche verfügen, die dasselbe Modell und dieselben unformatierten Daten verwenden. Das bedeutet, dass die Anwendung mit unterschiedlichen Animate-Oberflächen verwendet werden kann, wie z. B. einer Oberfläche für das Internet, einer für Pocket-PCs, einer Version für Mobiltelefone und vielleicht einer HTML-Version, die ganz ohne Animate arbeitet. Durch die Trennung von Daten vom Rest der Anwendung können Sie die Zeit, die das Entwickeln, das Testen und sogar das Aktualisieren mehrerer Clientoberflächen in Anspruch nimmt, erheblich reduzieren. Sie können auch leichter ein neues Front-End für dieselbe Anwendung hinzufügen, wenn Sie auf ein vorhandenes Modell zurückgreifen können.

Verwenden Sie MVC nur, wenn Sie eine große oder komplexe Anwendung, wie etwa eine E-Commerce-Website oder eine E-Learning-Anwendung, erstellen. Die Verwendung der Architektur erfordert Planung und Sie müssen verstehen, wie Animate und dieses Entwurfsmuster arbeiten. Überlegen Sie sich genau, wie die verschiedenen Teile miteinander interagieren; das erfordert in der Regel testen und debuggen. Bei Verwendung von MVC ist das Testen und Debuggen aufwendiger und schwieriger als bei typischen Animate-Anwendungen. Überlegen Sie sich, Ihre Arbeit mit MVC zu organisieren, wenn Sie eine Anwendung erstellen, die die zusätzliche Komplexität erfordert.

Erstellen sicherer Anwendungen

Gleichgültig, ob sich um eine kleine Portalsite, bei der sich Benutzer anmelden und Artikel lesen können, oder ein großes E-Commerce-Geschäft handelt, unredliche Benutzer könnten versuchen, in Ihre Anwendung zu hacken. Daher sollten Sie die folgenden Schritte zur Sicherung Ihrer Anwendung berücksichtigen.

  • Senden Sie Daten, die gesichert werden müssen, per HTTPS. Verschlüsseln Sie Werte in Animate, bevor sie zur Verarbeitung an einen Remote-Server gesendet werden.

    Hinweis: Speichern Sie Informationen oder Code, die bzw. den Benutzer nicht sehen sollen, niemals in einer SWF-Datei. Mithilfe von Software von anderen Anbietern ist es leicht, SWF-Dateien zu disassemblieren und ihren Inhalt anzuzeigen.

  • Fügen Sie eine domänenübergreifende Richtlinie hinzu, mit der nicht autorisierte Domänen am Zugriff auf Ihre Elemente gehindert werden.

 

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie