API

From Gaia Framework Wiki

Jump to: navigation, search

Contents

Introduction

The Gaia API simplifies the way you interact with the framework. Most of the power of Gaia comes from how you structure your site.xml and how you handle its events.



How To Use The Gaia API

This is the preferred method of using the Gaia API in AS2 and AS3:

import com.gaiaframework.api.Gaia;
Gaia.api.methodName();

Gaia implements the IGaia interface, located in the com.gaiaframework.api package.

In AS2, you can also use the deprecated:

_global.Gaia.methodName(); 


Gaia API Methods

Here is a description of all the methods available in the Gaia API.



goto

goto(branch:String, flow:String = null):void

goto is the primary method you will be using in Gaia. It requires at least one argument and that is a string of the branch you want to navigate to.


AS3 and AS2

Gaia.api.goto("index/nav/people/friends");
Gaia.api.goto("index/nav/about");


AS2 only

_global.Gaia.goto("index/nav/people");


Gaia will determine the nearest valid branch to what you passed. Passing "index" will result in Gaia going to the first valid branch under index. Also, if you pass a branch that doesn't exist, it will recurse up the branch until it finds a valid branch, and then back down to the termination of that branch. This might end up being the index branch.

For instance, if the valid branch is "index/nav/people/friends" and you pass "index/nav/people/free", it will find the nearest branch to what you passed "index/nav/people" and since people has a child page, it will terminate the branch at "index/nav/people/friends".

If you navigate to somewhere deeper than the last child of a branch in the site.xml, such as "index/nav/people/friends/john", Gaia stores "/john" and you can access it through the API directly via the method getDeeplink().

Gaia sends out a deeplink event when there is a branch beyond the valid branch, which you can listen to through the API.

Pages are automatically set up to listen to this event through the onDeeplink() method. See the Pages section of the documentation for more information.

To update the browser address bar with a deep link beyond the last child of the branch, call goto with the page's branch appended with your deep link. Example:

Gaia.api.goto("index/nav/people/friends/john");

If Gaia is already at the valid page "index/nav/people/friends", it will simply update the address bar in the browser with your custom deep link. Deep links do not have to be separated by slashes. More about this topic is covered in the SEO section of the documentation.

The optional "flow" argument is for overriding the flow for the goto event. Use the flow constants for these: Gaia.NORMAL, Gaia.PRELOAD, and Gaia.REVERSE. Gaia will use that and ignore the page's flow type as well as the site's default flow. This feature is primarily used for testing during development only. If you pass a flow, and then use the browser to navigate back and forward, the passed flow will not be used again because SWFAddress is what is calling goto then, not your original goto. For production, you should set the flow on the page either through site.xml or at runtime.



Pages Class

Gaia generates a class called Pages when it scaffolds your site. This class is located inside the class package you specify when you scaffold. Inside the Pages class are public static variables named after the routes, titles or ids of all the pages in the site.xml, and their associated branches are the values.

Using the Pages class is the preferred way of calling goto() and getPage().


AS3 and AS2

Gaia.api.goto(Pages.HOME);  // goes to "index/nav/home"

Gaia.api.goto(Pages.FRIENDS);  // goes to "index/nav/people/friends"
Gaia.api.getPage(Pages.INDEX);  // returns the IndexPage Asset

By using this class with goto(), changes to your site.xml architecture will have no effect on your goto() calls throughout your site. It also makes it easier to write your goto() calls.



getPage

getPage(branch:String):IPageAsset

Returns the instance of the PageAsset for that page. You pass it a branch and it returns the PageAsset of the final page of that branch. If the final leaf of the branch you passed is not a valid page id, it will return undefined (AS2) or null (AS3).

PageAsset has a property called children, which is an object which contains properties that match the ids of the pages of those children, and the values of those properties are the PageAssets themselves. PageAssets are aware of who their parent is, and pages also store their branch as a public property.

If you need to target the timeline of a page for custom properties, functions, or MovieClips, use the "content" property of the PageAsset.

AS3

Gaia.api.getPage("index/nav/home").content.myProp = value;
Gaia.api.getPage("index/nav/home").content.myFunc();
Gaia.api.getPage("index/nav/home").content.MC_Movieclip.x = 10;


AS2

Gaia.api.getPage("index/nav/home").content.myProp = value;
Gaia.api.getPage("index/nav/home").content.myFunc();
Gaia.api.getPage("index/nav/home").content.MC_Movieclip._x = 10;


More information about page properties can be found in the PageAsset, Pages and Site XML sections of the documentation.

You can also use the Pages Class with getPage() in the same way you use it for goto().



getDepthContainer

getDepthContainer(depth:String):Sprite  // AS3
getDepthContainer(depth:String):MovieClip  // AS2

Returns the Sprite or MovieClip depth container. Pass one of the depth constants when using this method.

var top:Sprite = getDepthContainer(Gaia.TOP);  // AS3
var middle:MovieClip == getDepthContainer(Gaia.MIDDLE);  // AS2


getSiteTitle

getSiteTitle():String

Returns the value of the title attribute of the site node with the %PAGE% token still inside it.



setSiteTitle

setSiteTitle(value:String):void

Sets the title of the site. You should include the %PAGE% token if you want it.



setDelimiter

setDelimiter(value:String):void

Sets the delimiter for the site if you setSiteTitle with a different delimiter. You need to call refreshContextMenu() to have this change reflected in the ContextMenu.



getValidBranch

getValidBranch(branch:String):String

Returns a valid branch for whatever branch you pass it.



getSiteTree

getSiteTree():PageAsset

Returns the PageAsset instance of the index page.



getMenuArray

getMenuArray ():Array

Returns an array of all the pages in the site.xml with menu="true" and that have a title. The pages are returned in order from top to bottom.



getSiteXML

getSiteXML():XML

Returns the raw site.xml



getCurrentBranch

getCurrentBranch():String

Returns the current valid branch.



getDeeplink

getDeeplink():String

Returns the deep link from the GaiaSWFAddress class that goes beyond the realm of the site.xml. When you have a page that needs to know the deeplink when it first opens, use getDeeplink() since it won't be open when the event fires.



getPreloader

getPreloader():IMovieClip

Returns the preloader MovieClipAsset (IMovieClip in AS3) for direct targeting. You can use this to call custom methods inside your preloader swf, reposition the preloader clip, etc.



setPreloader

setPreloader(asset:MovieClipAsset):Void

Override the preloader MovieClipAsset with a reference to an already loaded MovieClipAsset. If you want to revert to the default preloader, call this method without passing anything.



getDefaultFlow

getDefaultFlow():String

Returns the current default flow for any pages that do not have a flow defined (returns "normal", "preload", "reverse" or "cross").



setDefaultFlow

setDefaultFlow(flow:String):Void

Allows you to set the default flow at runtime for any pages that do not have a flow defined. Use one of the flow constants: Gaia.NORMAL, Gaia.PRELOAD, Gaia.REVERSE or Gaia.CROSS. To define a default flow for your site initially, use the flow attribute of the site node in the site.xml.



getAssetPreloader

getAssetPreloader():IMovieClip

Returns the asset preloader MovieClipAsset (IMovieClip in AS3) for direct targeting. You can use this to call custom methods inside your asset preloader swf, reposition the preloader clip, etc.



setAssetPreloader

setAssetPreloader(asset:MovieClipAsset):Void

This allows you to override the AssetPreloader MovieClipAsset to use the MovieClipAsset you pass (by default it uses the current site preloader). If you want to revert to the site preloader, call this method with no parameters.



getContextMenu

getContextMenu():ContextMenu (AS3 only)

Returns the ContextMenu attached to GaiaMain by Gaia, making it easier to modify the custom items in the ContextMenu, such as adding custom menu items that are not Gaia pages.



refreshContextMenu

refreshContextMenu():void

If you change the titles of pages or the site title, call this method to refresh the context menu to show the new values.



addAssets

Gaia.api.addAssets(nodes:XMLList, page:IPageAsset):void  // AS3
Gaia.api.addAssets(nodes:Array, page:PageAsset):Void  // AS2

This method is used to add externalized dynamic assets to a page at runtime. More information on how to use this method can be found in the Assets documentation.



getWidth

getWidth():int

Returns the original width of the stage when the site is set to 100% width or height. Useful for centering and other positioning code.



getHeight

getHeight ():int

Returns the original height of the stage when the site is set to 100% width or height. Useful for centering and other positioning code.



getSitePosition

getSitePosition ():Object

Returns the current Site View x,y position as an object with properties x and y. This is useful when using site centering code.



setLoadTimeout

setLoadTimeout(value:int):void

When a branch is loading, each file must show progress within a certain amount of time before Gaia will attempt to reload the file. This method allows you to adjust how long Gaia waits, in milliseconds, until a file shows progress. The default is 10000.



setPreloaderDelay

setPreloaderDelay(value:int):void

This allows you to override the default 150ms delay before the preloader transitionIn() method is called. This delay is to help prevent the preloader from showing up when loading from the cache. The smallest value you can pass is 1.



setGlobalVolume

setGlobalVolume(value:Number, duration:Number = 0; onComplete:Function = null):void

The method is used to set the global volume of the entire site. If you pass an optional duration argument, it will fade the volume to the value over that many seconds. If you pass an optional onComplete function, it will call that function when the fade is finished.



getGlobalVolume

getGlobalVolume():Number

Returns the current global volume.



getAvailableFonts (AS3 Only)

getAvailableFonts():Array

Returns an Array of the class names of all the fonts that were successfully registered using Runtime Font Loading.



getFontName (AS3 Only)

getFontName(className:String):String

Pass the font class name and this returns the runtime name of the font for use in a TextFormat, node in htmlText, and StyleSheets. This only works with Gaia's Runtime Font Loading.



SWFAddress Proxy Methods

More detailed information on these methods can be found at http://www.asual.com/swfaddress/docs/en/



back

back():Void

Loads the previous URL in the history list.



forward

forward():Void

Loads the next URL in the history list.



getTitle

getTitle():String

Returns the current title of the browser window.



setTitle

setTitle(title:String):Void

Allows you to set the title of the browser. The string you pass will be the entire title, so if you want to append something to or alter the current title, you should getTitle() or getSiteTitle(), modify that and pass it to setTitle().



href

href(url:String, target:String):Void

Due to the bug in AS2 with mixing ExternalInterface and getURL, this method is a substitute for getURL.



popup

popup(url:String, name:String, options:String, handler:String):Void

Opens a browser popup window.



setHistory

setHistory(b:Boolean):Void

Turns history tracking in the browser on and off by passing true or false. It is turned on by default, unless you set history="false" in the site.xml site node.



getHistory

getHistory():Boolean

Returns the current status of history tracking.



setTracker

setTracker(s:String):Void

Sets a function for page view tracking. The default value is 'urchinTracker'.



getTracker

getTracker():String

Returns the tracker function.



getBaseURL

getBaseURL():String

Returns the base URL of the website. This means everything before the # hash symbol that SWFAddress uses for deeplinking.



Depth And Flow Run-Time Constants

The Gaia API has some constants for depths and flows. Use these when you are getting/setting depths and flows at runtime.

Depth Constants

Gaia.TOP
Gaia.MIDDLE
Gaia.BOTTOM
Gaia.PRELOADER

Flow Constants

Gaia.NORMAL
Gaia.PRELOAD
Gaia.REVERSE
Gaia.CROSS

Domain Constants

Gaia.DOMAIN_CURRENT
Gaia.DOMAIN_NULL
Gaia.DOMAIN_NEW