Architecture

Resources

Abstract PDF »

Overview of classes PDF »

Go Docs »

Classes

Here's a brief overview of Go's core classes and optional utilities.
[Note: Recent changes have been made in version 0.5.0]

GoEngine
1. Central pulse-manager that IUpdatable items add themselves to during play.

2. A central hub for managers.

 

GoEvent extends Event
START, UPDATE, STOP, COMPLETE, PAUSE, RESUME, CYCLE.

 

IPlayable extends IEventDispatcher
Common play controls start(), stop(), pause(), resume(), and skipTo() and a state getter.

 

PlayStates
Constants STOPPED, PAUSED, PLAYING_DELAY, PLAYING.

PlayableBase extends EventDispatcher
Optional abstract base class for IPlayable classes.



The hierarchy of base classes for creating a tween is:

GoItem extends PlayableBase implements IUpdatable
Shared base class for any animation type – tween, physics, etc.
Provides common properties & defaults. Addable to GoEngine because it's IUpdatable.

LinearGo extends GoItem implements IPlayable

Tween base class with IPlayable controls like start() & pause().

LinearGo provides all the core functionality of a standard tween animation, but does not define any tween targets or properties. This allows you to data-type and design the specifics of your tween classes. Creating the tween can be done in just a few steps: gathering target & property information, setting up the tween in start, and applying the change in onUpdate. This process is detailed in the LinearGo docs and the 1st video tutorial, and sample tween classes are provided.

 



Go provides a decoupled, extensible format for adding system management, but leaves it up to the end user of your code whether to compile and use managers per project.

IManageable
Items can implement this to become compatible with managers.

IManager
An open interface for building managers. It contains just two methods, reserve() and release(), which GoEngine uses to notify of items being added and removed.

OverlapMonitor implements IManager
The most common animation manager. Prevents items from handling the same property at once.





The Go package also includes several handy utilities. These not part of the core Go platform, just optional helpers.

PlayableGroup extends PlayableBase implements IPlayable
Parallel: Play a batch of IPlayables at once, with a single set of play controls.

Sequence extends SequenceBase
Play items one after the next. Each step is can contain more than one item.

SequenceCA extends SequenceBase
A step sequencer with "Custom Adance" options, which lets you determine when to step forward. This lets you gracefully overlap and stagger animations. Options include OnDurationComplete, OnPlayableComplete, OnEventComplete, OnConditionTrue. Or, you can create your own.


Important: Store your custom Go classes in a package bearing your own classpath, not in the core package! This will help avoid confusion with other authors' work.