Deutsch:Seiten

Einführung
Gaia Seiten bestehen physikalisch durch die Flash Vorlagen die während der Gerüsterstellung, oder durch eure eigenen Seitenerstellung erstellt werden. Die Seiten können Assets Bestandteile und andere Seiten beinhalten. All dies findet sich in der Datei site.xml in den Knoten wieder.

Im Grunde genommen, sind die Seiten eigentlich MovieClipAssets (siehe Assets) die einen Einlade-Mechanismus haben und über ein eingebautes Beziehungs-Management mit ihren Bestandteilen, Eltern und Kindern verfügen.



Seiten Übergänge (Transitions)
Die Seiten in Gaia haben ein und aus Übergänge. (in & out) Die Übergänge könne auf sich auf die Zeitleiste besziehen oder als Code dargestellt werden. Ebenso ist auch ein Mix aus beidem möglich. Das ist einem selbst überlassen.

Es gib vier grundsätzliche Methoden, welche den Zeitlinien Standards folgen.


 * transitionIn;
 * transitionOut;
 * transitionInComplete;
 * transitionOutComplete;

Die Seiten erhalten diese Ereignisse von Gaia und all diese Methoden müssen in den Seiten definiert werden. Ihr müßt am Ende eures Überganges die "complete" Methode aufrufen, damit Gaia weiß wann transition In oder Out abgearbeitet wurden. Gaia hat diese Methoden bereits automatisch gesetzt.

Wenn die Übergänge Zeitlinien basiert sind, können die Methoden von der Root Zeitlinie aufgerufen werden. Ist das Ganze Codebasiert, muß nur das Ziel, oder die Dokumentenklasse die mit der Zeitlinie assoziiert wird, aufgerufen werden (AS2/AS3). Z.B. Ihr benutzt TweenLite für die Übergänge. Dann könnt ihr die Complete Methoden von Gaia als onComplete Parameter des Objekts nutzen. Gaias´erstellte AS Übergänge benutzen denselben Code.

AS3 override public function transitionOut:void {     TweenLite.to(this, .3, {alpha:0, onComplete:transitionOutComplete}); }

AS2 public function transitionOut:Void {     TweenLite.to(this, .3, {_alpha:0, onComplete:Delegate.create(this, transitionOutComplete)}); }

Es ist Empfehlenswert die Methoden zu überschreiben und nicht aufzurufen. Diese können in AS3 ohne Probleme überschrieben werden. Allerdings gibt es einen Bug in AS2. Wenn die Complete Methoden mit timeline transition style templates überschrieben werden.



Seiten Eigenschaften
Es gibt drei Eigenschaften die auf der Rootzeitleiste der der Seiten liegen: assets, page and copy.

Achtung: Diese drei Eigenschaften sind nicht verfügbar bevor transitionIn aufgerufen wurde.

Bestandteile assets
assets:Object Wenn eine Seite assets in der site.xml deklariert hat werden diese mit ihre id gespeichert. Mehr Informationen zum Umgang mit Assets findet ihr hier: [[Assets]

Seite
page:PageAsset Eine Referenz zur PageAsset Klasse erhalten wir in den Eigenschaften. Diese geben euch eine direkte Anbindung an die Eigenschaften, die Gaia nutzt um die Seite zu erstellen. Gemeint sind hier die Seiten Eltern, Kinder, Äste oder andere Eigenschaften. Zum Beispiel:

AS2 und AS3

var myBranch:String = page.branch; var myParentSrc:String = page.getParent.src;

Mehr über die public Seiten Eigenschaften findet ihr hier: Site XML

kopieren copy
copy:Object Wenn SEO in der site.xml definiert wurde und eine XHTML Seite mt generiert wurde sind die p Tag Werte für das copy Objekt ebenfalls verfügbar. Mehr dazu findet ihr hier: SEO var TXT_Header:TextField; TXT_Header.text = copy.someValue; trace(copy.anotherValue);

onDeeplink
Es gibt eine optionale Deeplink Funktion, die mit SWFAddress arbeitet.

onDeeplink(event:GaiaSWFAddressEvent)

Wenn ein Deeplink-Ereigniss von SWFAddress übergeben wird, so wird dieses in der Seite mit dieser Methode verarbeitet. Das Ereignis hat eine Deeplink Eigenschaft, dessen verarbeitung von Gaia übernommen wird. Es ist nicht nötig die Seiten mit Listenern manuell hinzuzufügen oder zu entfernen. Mehr dazu findet ihr hier: Events and Hijacking

Das GaiaSWFAddressEvent hat zwei Eigenschaften deeplink und branch (Ast). Die Deeplink Eigenschaft ist der Wert eines Astes, und die Ast-Eigenschaft ist der validierte Wert des Astes, dessen Teil der Deeplink Wert ist.

You override this method in your page class like this:

AS3 override public function onDeeplink(event:GaiaSWFAddressEvent):void {   // handle the event.deeplink }

AS2 public function onDeeplink(event:GaiaSWFAddressEvent):Void {   // handle the event.deeplink }

If you have clips or classes inside your pages that need to respond to this event, you can simply have them listen to the page for the GaiaSWFAddressEvent.DEEPLINK event. You'll need to call super.onDeeplink(event) in your override if you want this functionality. Otherwise, you don't need to call the super method if you don't want to.



Technische Informationen
Innerhalb von Gaia sind die Seiten Instanzen der PageAsset Klasse, welche vom MovieClipAsset abhängt. Eine swf Seite wird in einen dynamisch generierten Movieclip geladen und die Referenz dazu wird an die PageAsset Instanz weitergegeben. Die Referenz der PageAsset Klasse und seine Bestandteil "Assets" -Eigenschaften werden in der Dokumenten Klasse des Movieclips gespeichert. Die Dokumenten Klasse des MC´s wurde zuvor durch den Scaffold Prozess erstellt und das Template Paket erweitert  AbstractPage. Diese wiederum erweitert das AbstractBase.

Die drei Eigenschaften assets, page und copy, ebenso wie der Deeplink Event listener befinden sich in der AbstractPage und dem Package|com.gaiaframework.templates]] Paket.

AS3 Seiten
AS3 Seiten brauchen den o.g. Code nicht, da sie eine Dokumenten Klassen benutzen. Wenn ihr Timeline Templates benutzt ist das Prinzip gleich, mit einer Aussnahme: die einzige Methode im ersten Bild ist stop;. Wenn ihr Actionscript Templates benutzt, liegt gar kein Code auf der Zeitleiste. Die Gerüsterstellung (scaffolding) geschieht durch einen einzigen Befehl im Konstuktor der Seiten Klasse: new Scaffold(this);

AS2 Seiten
Wenn ihr Timeline Templates benutzt seht ihr nach dem Erstellen in jeder Seite mehrere Ebenen: AS (Actionscript), LABELS und eine Inhaltsebene. Ebenso seht ihr zwei Bildbezeichnungen "in" und "out".

Wenn ihr Actionscript Templates benutzt habt ihr nur ein Bild.

Im ersten Bild der AS Ebene, ist folgender Code:

import Package.Page; Page.initDocumentClass(this); stop; scaffold;

Das Paket und die Seite heißen genauso wie das class package und die Seiten id. In der Page Klasse simuliert die Methode nitDocumentClass(this) die Funktionalität der AS3 Document Class.

Nachdem ihr eure Arbeit beendet habt kann die "scaffold;" Zeile und die scaffold Funktion aus der Seiten Klasse entfernt werden.

Die Seiten Klassen (Classes)
Die AS2 und AS3 Seiten Klassen erweitern AbstractPage welche die AbstractBase erweitern und das IPage und IBase Interface implementieren.

AbstractPage beinhaltet die Assets, die Seiteneigenschaften und die Deeplink Funktion.

AbstractBase beinaltet die vier notwendigen Übergangs Methoden. Ihr selbst entscheiden ob die Methode transitionIn und transitionOut überschrieben werden sollen. Grundsätzlich haben diese gotoAndPlay Methoden. Oder ihr könnt euch entscheiden mit die Ereignisse die sie auslösen aufzugreifen.

Die transitionInComplete und transitionOutComplete Methoden sollten nicht erweitert werden, und ihr sollte sicher stellen die super class Methoden in der AbstractBase aufzurufen wenn ihr die Methoden überschreiben wollt.



Das Scaffolding von den Seiten entfernen


Wenn ihr fertig seit bleibt nur noch das entfernen der Erstellungsanweisung und das ist ausgesprochen einfach.

In AS3, entfernt diese Zeile in dem Seiten Klassen Konstruktor: new Scaffold(this);

In AS2, entfernt diese Zeile im ersten Bild der Seiten Templates: scaffold;

Ebenfalls kann die scaffold Methode in den AS2 Seiten Klassen entfernt werden.

Wenn ihr dies alles entfernt habt, kann auch die Datei scaffold.swf aus dem deploy Ordner und die Scaffold.as Klasse gelöscht werden. Letzteres ist nicht zwingend notwendig aber diese Dateien sind nach dem Löschen des Codes nicht mehr in Gebrauch, also kann man sie auch löschen.

Ebenso können die super.transitionIn und super.transitionOut in AS2 und AS3 gelöscht werden.

Die preload.fla hat einen MC in der Bibliothek der PreloaderScaffold heißt. Dieser ist mit der Klasse PreloaderScaffold.as verbunden. Wenn ihr wollt könnt ihr diesen MC löschen. Jedoch ist dies für viele eine Startpunkt in der Arbeit also kann man diesen auch einfach weiter nutzen.

'''*** Veröffentlicht die Seiten neu, nachdem ihr den Scaffolding Code entfernt habt! ***'''