Deutsch:Bestandteile

TRANSLATION PENDING

Überblick
Ein weiterer Knotentyp in der site.xml ist Asset. Bislang wurde immer von Bestandteilen gesprochen aber um nicht ständig umzudenken werden wir nun bei dem Wort Asset bleiben. Assets sind Teile der Seiten. Sie sind externe Dateien die mit den Seiten zu denen sie gehören verknüpft sind. Der Umgang mit Assets erlaubt in Gaia einen einfachen Weg seine externen Dateien zu verwalten und einzubinden.

AS2 und AS3 Assets

 * NetStreamAsset - flv oder m4a files
 * XMLAsset       - XML files
 * SoundAsset     - mp3 oder wav files
 * StyleSheetAsset - css files

AS3 Assets
Dies gibt die Abhängigkeiten des AS3 DisplayObject wider.
 * DisplayObjectAsset - Dies ist die Basis Klasse des DisplayObject assets
 * BitmapAsset       -  Bilder werden grundsätzlich als BitmapAssets  (png, jpg, gif, etc.)
 * BitmapSpriteAsset - Dies Asset ist ein BitmapAsset das in einem Sprite eingebunden wurde und unterstütz die Interaktivität.
 * SpriteAsset       -  Dies gibt die Abhängigkeiten des AS3 DisplayObject wider.
 * MovieClipAsset    - Grundsätzlich werden swf´s als MovieClipAssets geladen.
 * TextAsset         - Für .txt Dateien und in der Basis Klasse für XMLAsset, StyleSheetAsset und JSONAsset
 * JSONAsset         - Für .json Dateien
 * ByteArrayAsset  - For loading raw bytes

AS2 Assets

 * MovieClipAsset - Alles was nativ in einen MovieClip geladen wird (swf, png, jpg, gif, etc.)
 * SoundClipAsset - Externe swf mit eingebeteten Sound (for perfect loops)



Wie man Assets benutzt
Grundsätzlich werden Assets als Teile der Seiten mit dem Preloading Prozess geladen. Dieses Verhalten kann überschrieben werden.

*** WICHTIGE INFORMATION ÜBER DIE ASSET ANBINDUNG***

Das Asset Objekt ist auf einer Seite nicht erreichbar bevor transitionIn aufgerufen wurde. Der Grund liegt darin das das Actionscript im ersten Bild der Seite läuft bevor das Asset Objekt mit der Seite verbunden wurden. Also wartet bis transitionIn aufgerufen wurde bevor ihr die Assets einbindet.

Hier ist ein kleiner Überblick wie Assets benutzt werden.

       

In diesem Beispiel hat die Seite home 4 Assest mit den ids myMusic, myCopy, myImage und mySWF. Asset sind für die Seite durch die Eigenschaft "assets" in der Seitenklasse oder auf der Zeitleiste des SWF.

Die Assets werden direkt durch ihre ids und dem Großteil der nativen Methoden die Flash zu den Asset Typen bietet. Dies geschieht mit dem Proxy Design Pattern.

Assets in Gaia spiegeln die Asset Klassen in Flash.

''' Anmerkung: Bilder und swf Asset sind auf visible = false und die Position auf 0,0 gestellt wenn sie geladen werde. Wenn die Asset auf der Bühne sichtbar sein sollen müßt ihr visible = true eingeben.'''



MovieClipAsset
MovieClipAsset können direkt eingebunden werden mit den nativen MovieClip Methoden und Eigenschaften.

Hier ein Beispiel. Ihr könnt Assets genauso einbinden wie irgendeinen MovieClip.

AS2 assets.myImage._x = 50; assets.myImage._y = 100; assets.myImage._visible = true; trace(assets.myImage._parent);  // gibt den _parent des MovieClip aus // assets.mySWF.gotoAndPlay(10); assets.mySWF.onRelease = function {};

AS3 braucht kein Casting. Aber wenn ihr den Code aus Performancengründen strikt schreiben wollt, casted die Assets zu ihrer Oberfläche. MovieClipAssets benutzen IMovieClip, images nutzen IBitmap, sprites nutzen ISprite, und sie sind alle abhängig vom IDisplayObject. Ebenfalls wichtig zu bemerken ist das die parent Eigenschaft den parent des "loders" zurückgibt und nicht den Inhalt.

AS3 IDisplayObject(assets.myImage).x = 50; IDisplayObject(assets.myImage).y = 100; IDisplayObject(assets.myImage).visible = true; // IMovieClip(assets.mySWF).gotoAndPlay(10); trace(IMovieClip(assets.mySWF).parent); // gibt den parent des "loders" zurück und nicht den Inhalt // // AS3 arbeitet ebenfalls ohne casting // assets.mySWF.gotoAndStop(5); assets.myImage.scaleX = 0.5; trace(assets.myImage.parent); // BitmapSpriteAsset.parent gibt den parent des Sprites in dem er sich befindet

Für AS3! Wenn kleine Dateien wichtig sind benutzt nur das Interface das am nächsten zu IAsset ist und die Methoden hat die ihr braucht. z.B. wenn ihr nur x und y setzen müsst, benutzt IDisplayObject.

Die Zeitleiste eines MovieClipAssets ansteuern
Wenn ihr einen swf Asset habt und die Dokumenten Klasse oder seine Zeitleiste steuern wollt. zB. eigenen Methoden, Eigenschafen MovieClips etc, muß die Zeitleiste oder Dokumentenklassen angesteuert werden. Dies kann direkt geschehen indem die content Eigenschaft benutzt wird. Diese gibt einen MovieClip zurück.

AS2 assets.mySWF.content.someMethod assets.mySWF.content.someMovieClip._x = 10;

In AS3, kann ein MovieClipAsset als IMovieClip instanziert werden oder auch nicht.

AS3 assets.mySWF.content.someMethod; IMovieClip(assets.mySWF).content.someMovieClip.x = 10;

Das gleiche gilt für Seiten (PageAsset erweitert MovieClipAsset).

AS2 Gaia.api.getPage("index/nav").content.someMovieClip._visible = true;

oder

_global.Gaia.getPage("index/nav").content.someMovieClip._visible = true;

AS3 Gaia.api.getPage("index/nav").content.someMovieClip.visible = true;



BitmapAsset (nur AS3)
BitmapAsset erweitert DisplayObjectAsset. In AS3, kann jedes Bild Asset in der site.xml, wie jpg, gif, or png, angegeben werden Sie werden als BitmapAssets geladen.

import com.gaiaframework.api.IBitmap; import flash.display.BitmapData; // IBitmap(assets.myBitmap).x = 50; var myBitmapData:BitmapData = IBitmap(assets.myImage).bitmapData;



BitmapSpriteAsset (nur AS3)
Dies ist einen Version des BitmapAsset der Interaktiv genutzt werden kann, da der BitmapSpriteAssets mit einem Sprite Container umhüllt wird, und das Asset einen Proxy zu den Sprite Methoden bietet. Setzt den type="sprite" im Knoten und macht aus einem BitmapAsset ein BitmapSpriteAsset.

import com.gaiaframework.api.IBitmapSprite; // IBitmapSprite(assets.myBitmap).buttonMode = true; IBitmapSprite(assets.myBitmap).addEventListener(MouseEvent.CLICK, onClickBitmap);



SpriteAsset (nur AS3)
SpriteAsset erweitert DisplayObjectAsset. SpriteAsset wird eingesetzt für AS3's Abhängigkeiten und ist kein nutzbarer Asset-Typ. Das ISprite Interface wir eingesetzt um die Dateien klein zu halten falls die IMovieClip Methoden nicht benutzt werden.

Container
SpriteAsset hat eine Eigenschaft die ''container" heisst. Sie zeilt auf den loader des MovieClipAssets und Container Sprite der für BitmapSpriteAssets erstellt wurde. Ihr werdet generell IBitmapSprite nutzen (welches ISprite erweitert).

import com.gaiaframework.api.IBitmapSprite // TweenLite.to(IBitmapSprite(assets.myBitmap).container, 2, {alpha:0});



SoundAsset
Ein SoundAsset hat dieselben nativen Methoden wie das Sound Objekt in Flash.

z.B. Ihr wollt das mp3 Asset mit der id "myMusic" abspielen. Dann würdet ihr folgenden Syntax auf der Root Zeitleiste im Page Clip nutzen

AS2 assets.myMusic.start; assets.myMusic.start(4, 5); // ihr wollt nach 4 Sekunden starten und 5 mal abspielen

AS3 benutzt das ISound Interface.

AS3 ISound(assets.myMusic).play; ISound(assets.myMusic).play(4, 5); // ihr wollt nach 4 Sekunden starten und 5 mal abspielen

In AS2, werden Sound Assets grundsätzlich als Ereignis gesetzt. Setzt das streaming Attribut im Asset Knoten auf "true". Wenn Sound Assets als Streaming Audio abgespielt werden sollen. Ebenso sollte in den meisten Fällen preload="false" gesetzt werden

In AS3 gibt es keine geladenen Ereignis Sound, deshalb wird das "streaming" Attribut nicht benutzt und alle Sound Assets werden als Streaming behandelt. Wenn preload="true" gesetzt wird. So wird der komplette Sound als Teil der Seite geladen, und gestartet wenn der Befehl dazu gegeben wird.

Zu guter Letzt erweitert Gaia die AS2 Limitierung Streaming Sound nicht loopen zu können, und ermöglicht die indem den Loops Werte beigegeben werden. Mehr darüber hier: Load On Demand

SoundAssets haben drei Methoden zur freien Auswahl.

pause
pause(flag:Boolean) true für pause und false (oder nichts) zum aufheben der Pauuse und fang von der letzten Position an zu spielen.

fadeTo
fadeTo(value:Number, duration:Number, [onComplete:Function]) // AS2 fadeTo(value:Number, duration:Number, onComplete:Function = null) // AS3 Value ist die Lautstärke zu der gefadet werden soll. Duration ist die Anzahl der Sekunden für den Fade, optional kann auch eine Funktion angegeben werden die aufgerufen wird wenn das faden vollständig ist.

panTo
panTo(value:Number, duration:Number, [onComplete:Function]) // AS2 panTo(value:Number, duration:Number, onComplete:Function = null) // AS3 Value ist der Aussteuerungswert (-100 to 100 in AS2, -1 to 1 in AS3), Duration ist die Anzahl der Sekunden für die Austeuerung, optional kann auch eine Funktion angegeben werden die aufgerufen wird wenn das Aussteuern vollständig ist.



SoundClipAsset (nur AS2)
Ein SoundClipAsset ist fast das gleiche wie ein SoundAsset. Und hat die fast dieselben nativen Methoden wie das Sound Asset. SoundClipAsset werden vorwiegend für mp3 Dateien benutzt die dann gelooped werden.

Um ein SoundClipAsset für Gaia zu erstellen, wird erst eine Flash Datei erstellt in die die Audio Datei importiert wird. Gebt der Audio Datei ein ID und folgenden Coden auf die Zeitleiste.

sound = new Sound(this); sound.attachSound("YOUR_LINKAGE_ID");

In der site.xml muß dieses Asset das Attribut "sound" bekommen. Beispiel:



Das ist alles. Gaia macht den Rest.

SoundClipAsset verhalten sich wie SoundAsset mit der Ausnahme das sie nicht als streamend ausgezeichnet werden. Ansonsten werden sie genauso eingebunden wie Sound Assets. Und sie können auch zu SoundGroups zusammen geschlossen werden.

<br style="clear:both" />

NetStreamAsset
NetStreamAssets haben alle Methoden der NetStream Klasse. Ein NetStreamAsset hat auch die Eigenschaft "ns", welches eine Referenz zu der NetStream Instanz darstellt.

In AS3, NetStreamAssets benutzen INetStream Interface.

INetStream(assets.myFLV).play; INetStream(assets.myFLV).attach(video);

In Beiden AS2 und AS3, haben NetStreamAssets zwei vorgefertigte Eigenschaften und eine Methode.

duration
get duration:Number Gibt die Dauer des geladenem NetStreamAsset welche aus den Metadaten ausgelesen wird.

metaData
get metaData:Object Gibt das metaData Objekt des geladenen NetStreamAsset zurück.

attach
attach(video:Video) Diese Hilfsmethoden ermöglicht es eine Video Instanz anzuhängen attach. Gaia übernimmt das Anhängen des NetStream ans Video.

Nur in AS3, haben NetStreamAssets vier zusätzliche vorgefertigte Eigenschaften/Methoden.

volume (nur AS3)
get volume:Number set volume(value:Number):void Diese Setter Eigenschaft bindet die Lautstärke an das NetStreamAsset, ein Fließkomma Wert von 0 bis 1.

pan (nur AS3)
get pan:Number set pan(value:Number):void Diese getter/setter Eigenschaft bindet die Aussteuerung an das NetStreamAsset, ein Fließkomma Wert von -1 bis 1.

fadeTo (nur AS3)
fadeTo(value:Number, duration:Number, onComplete:Function = null) Value ist die Lautstärke zu der eingeblendet werden soll, duration ist die Dauer in Sekunden bis zur gewünschten Lautstärke. Und optional kann abgefragt werden wann dieser Vorgang beendet ist.

panTo (nur AS3)
panTo(value:Number, duration:Number, onComplete:Function = null) Value ist der Aussteuerungswert (-100 zu 100 in AS2, -1 zu 1 in AS3), duration ist die Dauer in Sekunden. Und optional kann abgefragt werden wann dieser Vorgang beendet ist.

<br style="clear:both" />

NetStreamAssetEvent
NetStreamAsset erledigt ebenso Ereignisse für den Klienten "events", onMetaData und onCuePoint inbegriffen. Für diese Ereignisse können listener zum NetStreamAsset hinzu gefügt werden. Das Ereignis durchläuft dann die "info" Eigenschaft.

// AS3 INetStream(assets.myFLV).addEventListener(NetStreamAssetEvent.METADATA, onMetaData); // AS2 assets.myFLV.addEventListener(NetStreamAssetEvent.METADATA, Delegate.create(this, onMetaData));

Um das onMetaData Event zu verarbeiten muss das NetStreamAsset auf preload="false" gesetzt werden. Sonst werden die Metadaten schon beim einbinden des Asset bereitgestellt.

Das sind die NetStreamAsset Events die abgefragt werden können. Um mehr über die Events zu erfahren schaut in die Actionscript NetStream Dokumentation.

AS3 und AS2 * NetStreamAssetEvent.METADATA * NetStreamAssetEvent.CUEPOINT

nur AS3 * NetStreamAssetEvent.IMAGE_DATA * NetStreamAssetEvent.TEXT_DATA * NetStreamAssetEvent.XMP_DATA

nur AS2 * NetStreamAssetEvent.STATUS

<br style="clear:both" />

XMLAsset
In AS2 bieten XML Assets zwei Anschlussmöglichkeiten. Zum einen als einfaches XMLin der Eigenschaft xml, oder als XML2AS Actionscript Objekt in der Eigenschaft obj..

AS2 assets.myCopy.xml.firstChild.firstChild.attributes.id; assets.myCopy.obj.site[0].page[0].attributes.id;

In AS3, ist das XML in der xml Eigenschaft gespeichert. Es kann E4X Syntax benutzt werden um es zu durchlaufen. AS3 nutzt dasIXml Interface

AS3 var myXML:XML = IXml(assets.myCopy).xml; trace(myXML.child[0].anotherChild[0].@someAttribute);

<br style="clear:both" />

StyleSheetAsset
StyleSheetAsset is for .css files. It contains proxy methods for the StyleSheetAsset class, has a property "style" to get the StyleSheet instance, and one helper method, transformStyle, which combines two native StyleSheet methods into one that returns a TextFormat.

transformStyle
myFormat:TextFormat = assets.myStyle.transformStyle(styleName);

AS3 uses the IStyleSheet interface.

myFormat:TextFormat = IStyleSheet(assets.myStyle).transformStyle(styleName);

<br style="clear:both" />

TextAsset (AS3 only)
TextAsset is for .txt files, and is also the base class for StyleSheetAsset, JSONAsset and XMLAsset. It uses the IText interface and has a property "text" to get the raw text.

AS3 uses the IText interface.

var str:String = IText(assets.myFLV).text;

<br style="clear:both" />

JSONAsset (AS3 only)
JSONAsset extends TextAsset and uses the IJson interface. It has one property "json" which returns a deserialized JSON object using the com.serialization.json.JSON class.

IJson(assets.myJson).json;

ByteArrayAsset (AS3 only)
ByteArrayAsset loads in raw byte data, which is avaiable in the public property "data" which returns the ByteArray. One use for this is if you want to load in the raw bytes of a file to create multiple instances of it, such as a Bitmap or swf file.

IByteArray(assets.myByteArray).data;

<br style="clear:both" />

DisplayObjectAsset (AS3 only)
DisplayObjectAsset extends AbstractAsset and is the base asset for SpriteAsset (and thus, MovieClipAsset), BitmapAsset and BitmapSpriteAsset.

<br style="clear:both" />

Load-On-Demand Assets
In the site.xml, by setting the preload attribute to "false", assets can be set to not preload with a page and instead be loaded on demand. To load assets on demand, you use the load method. You can load on demand any number of assets at once, and Gaia will automatically queue them to load two at a time (the maximum number of simultaneous HTTP requests).

assets.mySWF.load; assets.myMusic.load;

In AS3, use the appropriate interface class.

IMovieClip(assets.mySWF).load; ISound(assets.myMusic).load;

Sound And NetStream Assets
Sound and NetStream assets will immediately start streaming when load is called on them. If the Sound is an event sound or a SoundClipAsset, it will load first and immediately play.

load
Sound Assets accept two parameters on the load method, just like the Sound.start method.

SoundAsset.load(startTime:Number, loops:Number);

If the SoundAsset is not streaming, it will load the entire sound file and then play it. If it is streaming, it will play it immediately. Unlike the (AS2) native loadSound method, you can loop streaming audio files by passing the number of loops you want. For example, this code will start streaming a sound asset and loop it 999 times:

assets.myStreamingMusic.load(0, 999);

loadWithoutPlaying
Sound Assets also have a method to load without playing.

SoundAsset.loadWithoutPlaying;

<br style="clear:both" />

Other Asset Types
Image, swf, and xml assets will load like they normally do, with image and swf assets being invisible upon load.

<br style="clear:both" />

Progress Attribute
By setting the progress attribute to "true" in the site.xml, you can use the preloader to display the loading progress of the asset (this does not work for NetStream or streaming sound assets), set it to "false" to not show progress. The asset loader uses the site preloader by default, but this behavior can be changed at runtime. Read the Preloader and API documentation for more information.

<br style="clear:both" />

How To Know When An Asset Is Done Loading
If you want to know when an asset is done loading, assign an AssetEvent.ASSET_COMPLETE event listener to the asset. Make sure you remove the event listener when it's done!

AS3

// replace this IAsset import with whatever specific asset interface you're using import com.gaiaframework.events.AssetEvent; import com.gaiaframework.api.IAsset; // var myAsset:IAsset = Gaia.api.getPage("index").assets.mySWF; myAsset.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetLoaded, false, 0, true); myAsset.load; // private function onAssetLoaded(event:AssetEvent):void {    myAsset.removeEventListener(AssetEvent.ASSET_COMPLETE, onAssetLoaded); // access your asset OR event.target, which is also your asset }

AS2

import com.gaiaframework.assets.AbstractAsset; import com.gaiaframework.events.AssetEvent; import mx.utils.Delegate; // var myAsset:AbstractAsset = Gaia.api.getPage("index").assets.mySWF; var completeDelegate:Function = Delegate.create(this, onAssetLoaded); myAsset.addEventListener(AssetEvent.ASSET_COMPLETE, completeDelegate); myAsset.load; // private function onAssetLoaded(event:AssetEvent):Void {    myAsset.removeEventListener(AssetEvent.ASSET_COMPLETE, completeDelegate); // access your asset OR event.target, which is also your asset }

<br style="clear:both" />

Re-Parenting DisplayObjectAssets (AS3 Only)
If you want to put a BitmapAsset or MovieClipAsset into a MovieClip or Sprite that you create, wait until transitionIn is called and use the loader property. myContainer.addChild(assets.myAsset.loader);

If you want to reparent a BitmapSpriteAsset or MovieClipAsset, use the container property. myContainer.addChild(assets.myAsset.container);

<br style="clear:both" />

Other Uses For Assets
Another use for assets is to preload and cache assets you want to load yourself manually. Just get the src property of the asset.

One example use case is for sound assets you want to persist after the page goes away.

AS2 var mc:MovieClip = _root.createEmptyMovieClip("MC_Music", _root.getNextHighestDepth); _root.music = new Sound(mc); _root.music.loadSound(assets.myMusic.src); _root.music.onLoad = function {    _root.music.start; };

<br style="clear:both" />

Accessing Assets On Other Pages
If you are inside one page's timeline and want to access assets on another loaded page in the branch, you have two options.

The recommended way is to use the API method, getPage.

Gaia.api.getPage(branch).assets

which you can read more about in the API section of the documentation.

The other way is to access the page's parent or children properties, such as:

page.getParent.assets OR page.children.somePageID.assets

<br style="clear:both" />

Preloader Asset
You can use a MovieClipAsset as a preloader for the site. Most of the time, you'll want to set its depth="preloader" to load it into the right depth. It's best to make this an asset of a page that will not unload (e.g. the index page). If your MovieClipAsset unloads, the PreloadController will revert to using the default site preloader. Make sure that the MovieClipAsset is loaded before you override the preloader with this asset. You can read more about this in the Preloader documentation.

<br style="clear:both" />

Dynamic Externalized Assets
This is an advanced technique and you should be completely familiar with how Gaia's assets work before using it.

You can create asset xml files and assign assets to a page dynamically at runtime using the Gaia API method addAssets. All you have to do is make sure the nodes you pass have the minimum required asset attributes of id and src. This makes creating image galleries with Gaia much simpler and allows you to use the AssetLoader or Gaia's preloading engine for dynamic lists of assets.

A recommended practice is to have your xml file with assets in it as an asset of the index page (using indexFirst="true", see example below), and call addAssets inside the index page's transitionIn method on the page you want to add the assets to. You can also addAssets to a page that is already loaded.

You can add the assets as on-demand (preload="false") or, if you want them to preload with the page, set preload="true".

To use addAssets, pass a list of valid asset nodes and a reference to the PageAsset you want to add them to. Gaia will warn you if you try to add an asset that already exists on a page so make sure you use unique IDs for your external assets and do not add the same assets multiple times. Adding assets to a page using addAssets is permanent, not temporary.

How To Use External Assets
Gaia.api.addAssets(nodes:XMLList, page:IPageAsset):void // AS3 Gaia.api.addAssets(nodes:Array, page:PageAsset):Void // AS2

Here's an example of how it works:

Example site.xml
<site title="Gaia Scaffold Site: %PAGE%" menu="true" indexFirst="true"> <page id="index" src="index.swf"> <asset id="homeAssets" src="homeAssets.xml"/> <page id="nav" src="nav.swf" depth="top"> <page id="home" title="Home" src="home.swf" menu="true" />

As you can see, the index page has an XMLAsset, homeAssets, and indexFirst is set to true. This is so the index page and the xml will be loaded before Gaia attempts to load the home page branch.

<br style="clear:both" />

Example homeAssets.xml
<asset id="asset1" src="image1.jpg"/> <asset id="asset2" src="image2.jpg"/> <asset id="asset3" src="image3.jpg"/> <asset id="asset4" src="image4.jpg"/>

<br style="clear:both" />

Example IndexPage.as
AS3 override public function transitionIn:void {   super.transitionIn; var assetNodes:XMLList = IXml(assets.homeAssets).xml.asset; var homePage:IPageAsset = Gaia.api.getPage("index/nav/home"); Gaia.api.addAssets(assetNodes, homePage); TweenLite.to(this, 0.3, {alpha:1, onComplete:transitionInComplete}); }

AS2 public function transitionIn:Void {   super.transitionIn; var assetNodes:Array = assets.homeAssets.obj.assets[0].asset; var homePage:PageAsset = Gaia.api.getPage("index/nav/home"); Gaia.api.addAssets(assetNodes, homePage); TweenLite.to(this, 0.3, {_alpha:100, onComplete:Delegate.create(this, transitionInComplete)}); }

<br style="clear:both" />

Explanation
The above code will add all the assets in the homeAssets.xml file to the "home" Page before it loads, and will preload them with the page since these assets are being added before the "index/nav/home" branch is loaded.

If you do not need to preload the assets with the page, set preload="false" in each of your external asset nodes and you can load them yourself in the HomePage class, if you like.

Note that the nodes themselves do not need to be named "asset". You could have many pages of asset nodes in a single external xml file. Just pass the list of nodes you want to the addAssets API method and the page they belong to and Gaia will iterate through that list.

<br style="clear:both" />

Update File Bytes
If you want the Gaia Panel to update the "bytes" attribute for external assets, you will need to set assets="true" on the xml asset for the panel to update it.

<br style="clear:both" />

More Information On Assets
To see all of the methods available to assets, check out their individual class files in the com.gaiaframework.assets package. Most, if not all, native methods are available directly.

In AS3, make sure to look at the individual asset interface classes in the com.gaiaframework.api package.

You should use these interfaces when casting assets you access to keep your file sizes considerably smaller.

AS3 import com.gaiaframework.api.ISound; var myMusic:ISound = assets.myMusic as ISound; myMusic.play;

import com.gaiaframework.api.INetStream; var myVideo:INetStream = assets.myVideo as INetStream; myVideo.play;

node
All assets (including Pages) have a property node. This contains the xml node of the page or asset in the site.xml. Because it's XML, you can put custom attributes on your page or asset nodes, and even custom child nodes that are not or nodes. In AS3, node is XML which can be accessed via E4X. In AS2, it's an XML2AS object.