Medien Komponenten
Beim Anschluß von Flash oder Flex Komponenten an ein CMS geht es im wesentlichen um die Möglichkeiten Daten zur Laufzeit zwischen CMS und Komponente zu übergeben. Dies ist die Vorraussetzung z.B. eine Flex oder Flash Anwendung mit einem CMS verändern zu können. Ein CMS braucht hierfür eine Extension und die Komponente ein Interface welches aus einer der drei Methoden besteht:
External Interface
Ein External Interface ist die eleganteste Methode einer Flash Komponente Daten aus einem CMS zu übergeben. Generell dient die Actionscript Klasse External Interface dazu Daten zwischen dem SWF Object, also dem Flash Player und dem umgebenden HTML Container auszutauschen. Anders als bei einer Bridge genügen dem External Interface ausgesuchte Methoden, es muß also nicht das komplette Actionscript Objektmodell in Javaskript übertragen werden. (Um das kleine External Interface Anwendungsbeispiel hier unter diesem Beitrag zu verstehen ist mindestens Typo3 Grundwissen erforderlich.)
XML-Komponente
Die einfachste Möglichkeit Daten aus einem CMS an einen Flashplayer zu übergeben ist ein XML File. Die Methode gibt es schon seit AS2.0 und für viele Anwendungen ist dies auch vollkommen ausreichend.
AJAX Bridge
Alle Objekte die in ActionSkript Darstellbar sind, sind auch als JavaSkript Objekte darstellbar. Eine AJAX Bridge übersetzt das komplette Objekt Model einer Flex oder Flash Anwendung in ein Javaskript Objektmodel und ermöglicht so dem Browser auf die kompletten Eigenschaften der Anwendung zuzugreifen. Eine Einrichtung derselben kann z.B. dann sinnvoll sein wenn Sie Inhouse jemanden haben der Javaskript, aber kein ActionScript kann.
dieser kleinen Anordnung, kann man einem External Interface bei der Arbeit zusehen.
Der Slider wird mit Contentelementen aus einer Typo3 Tabelle befüllt. Hier ist es die News, die mit der Newskategorie Websites gefüllt wird. Das HTML Dropdown enthält weitere Datensätze wie z.B. Pages als Content, die man braucht um ein Seitenmenü auszugeben. Das Textfeld zeigt dabei an welche Daten übergeben werden. Das Interface ist aus der "Carousell Erweiterung", die derzeit nur auf der develop.addit-media.net Subdomain installiert ist. Die Inhalte sind daher auf Seiten dieser Domain und die Sliderlinks verlinken ebenfalls dorthin. Da der Aufbau der Develop-Site aber nahezu idendisch ist, ändert das Nichts an der Aussage des Beispiels. Es zeigt vielmehr ergänzend, daß das External Interface auch Domain übergreifend funktioniert, entsprechende Loadpolicy Dekleration vorrausgesetzt.
Id 188, "Entwicklungen".
Id 198, "Addit Carousell" .
Id 114, "Produkte",
und Id 127, "Flash Navigationen".
Der letzte Eintrag ist, wie man sieht, kein "Page" Content sondern ein "News" Content. Als Id wird die des News-Speicherordners(230) übergeben. Ausgabe ist dann wieder die News. >> zur Seitenhierarchie siehe auch Sitemaps.
Ablaufbeschreibung: Läuft der Slider meldet das External Interface das Flash-Objekt als "running" an den HTML Container. Dieser übergibt neue Datenanfragen aus dem CMS an das Flashobjekt, das wiederum über einen HTTP-Request die Anfrage an den Server übergibt. Es zeigt die neu gewählten Unterseiten der ausgewählten Seite an und gibt die Requestvariablen an Javaskript zurück, so daß diese ins HTML-Textfeld schreibt und damit die Kommunikation des External Interface wie folgt darstellt: HTML-Container(Dropdown) > Javaskript > Actionskript > Flash Objekt > Actionskript > Javaskript > HTML-Container(Textfeld). Mit statischen .swf-Dateien, bräuchte man in Typo3, 5 gleiche Seiten, mit 5 statischen .swf-Komponenten. Auch das würde funktionieren hätte aber den Nachteil, daß bei jedem Aufruf die komplette Seite neu geladen wird. Deutlich eleganter und geschmeidiger beim Seitenwechsel ist die Verwendung einer .swf-Datei, die den Inhalt verschiedener Seiten dynamisch nachläd. Um Daten aus einem CMS nachzuladen, muß das Laden vom HTML-Container indizierbar sein, denn dieser läßt sich durch das CMS manipulieren. Hier wird der "onChange"-Event des HTML-Dropdown im Container als Auslöser verwendet. Aus Gründen der Übersichtlichkeit ist die Textfeldausgabe auf die wesentlichen Parameter beschränkt. Kopieren sie die Parameter URL in's Adressfenster des Browsers um die Antwort des Servers auf den Request des Flash Objekts im XML Format anzuzeigen. Diese enthält alle Parametern die übergeben werden und zeigt das hier Alles bis hin zur Schrift und grafischen Darstellung des Sliders, vom CMS in der SWF-Datei gesetzt wird.
Jquery Slider in verschiedenen Ausführungen für News, Content und Pageausgabe. Da Jquery bereits Javaskripte sind braucht so ein Slider kein Interface um als Frontend für ein CMS zu funktionieren.
Dynamisch - Statisch
Da die Begriffe keine offiziellen Bezeichnungen sind erklären wir hier kurz den Kontext. Eine "statische" Anwendung ist eine Flashanwendung die aus einzelnen Objekten zusammengebaut und anschliessend kompiliert wird. In einer solchen Anwendung ist es nicht möglich zur Laufzeit der SWF Datei weitere Komponenten hinzuzufügen. Sie ist deshalb "statisch". Diese kann man zwar in einem CMS anzeigen aber nicht ihren Inhalt oder ihr Aussehen in Relation zu den aus der Datenbank gelieferten Daten verändern. Einen wirklichen Sinn im Sinne eines Contentmanagements macht erst die Möglichkeit die Datenbankdaten verwenden zu können um damit Inhalt und Aussehen der Anwendung zu verändern.
Flashobjekte die zur Laufzeit, über welche Methode auch immer, Aussehen und Inhalt verändern können, bilden die Grundlage dafür "managebare" Anwendungen in Flash zu erstellen. Da eine solche Datei in der Lage ist Ihre Erscheinung während ihrer Laufzeit an die jeweiligen Erfordernisse anzupassen ist sie "dynamisch". In der Realität gibt es oft Mischformen in AS 2.0 war es üblich SWF Dateien mit statischen und dynamischen Anteilen zu verwenden. Unsere Flashplayer sind z.B. solche SWF Dateien, während unsere Flashnavigationen komplett dynamische SWF Dateien sind, da sich Navigationen permanent anpassen müssen. Fügt man beispielsweise im CMS eine neue Seite hinzu muß diese ja beim nächsten Aufruf auch in der Flashnavigationen enthalten sein.
