| Package | net.guttershark.events |
| Class | public class EventManager |
You can opt in to having the EventManager send events through the tracking framework.
import net.guttershark.events.EventManager;
public class Main extends Sprite
{
private var em:EventManager;
private var mc:MovieClip;
public function Main()
{
super();
em = EventManager.gi();
mc = new MovieClip();
mc.graphics.beginFill(0xFF0066);
mc.graphics.drawCircle(200, 200, 100);
mc.graphics.endFill();
em.handleEvents(mc,this,"onCircle");
addChild(mc);
}
public function onCircleClick():void
{
trace("circle click");
}
public function onCircleAddedToStage():void
{
trace("my circle was added to stage");
}
}
Callback methods will only be called if you have them defined. Your callback methods must be defined with the specified prefix, plus the name of the event. Specified in the below tables.
Passing the originating event back to your callback is optional, but there are a few events that are not optional, because they contain information you probably need. The non-negotiable events are listed below.
EventManager also supports adding your own EventListenerDelegate, this is how component support is available. There are custom EventListenerDelegates for components so you don't have to compile every one into your swf. This also allows you to extend the EventManager to support your own classes that dispatch events.
Adding support for event handler delegate of an FLVPlayback component:import net.guttershark.events.EventManager; import net.guttershark.events.delegates.FLVPlaybackEventListenerDelegate; var em:EventManager = EventManager.gi(); em.addEventListenerDelegate(FLVPlayback,FLVPlaybackEventListenerDelegate); em.handleEvents(myFLVPlayback,this,"onMyFLVPlayback");
import net.guttershark.events.EventManager; var em:EventManager = EventManager.gi(); em.handleEvents(mc,this,"onMyMC",false,true);
import net.guttershark.events.EventManager;
var em:EventManager = EventManager.gi();
for(var i:int = 0; i < myClips.length; i++)
{
em.handleEvents(myClips[i],this,"onClip",false,true,"onClip"+i.toString());
}
function onClipClick()
{
}
<tracking>
<track id="onClipClick0">
<atlas>...</atlas>
<webtrends>...</webtrends>
</track>
<track id="onClipClick1">
<atlas>...</atlas>
<webtrends>...</webtrends>
</track>
</tracking>
Supported TopLevel Flashplayer Objects and Events:
| Object | Events |
| DisplayObject | Added,AddedToStage,Activate,Deactivate,Removed,RemovedFromStage |
| InteractiveObject | Click,MouseUp,MouseDown,MouseMove,MouseOver,MouseWheel,MouseOut,FocusIn, FocusOut,KeyFocusChange,MouseFocusChange,TabChildrenChange,TabIndexChange,TabEnabledChange |
| Stage | Resize,Fullscreen,MouseLeave |
| TextField | Change,Link |
| Timer | Timer,TimerComplete |
| Socket | Connect,Close,SocketData |
| LoaderInfo | Complete,Unload,Init,Open,Progress |
| Camera | Activity,Status |
| Microphone | Activity,Status |
| NetConnection | Status |
| NetStream | Status |
| FileReference | Cancel,Complete,Open,Select,UploadCompleteData |
Supported Guttershark Classes:
| Object | EventListenerDelegate | Events |
| PreloadController | PreloadControllerEventListenerDelegate | Complete,Progress,AssetComplete |
| XMLLoader | NA | Complete |
Supported Components:
| Component | EventHandlerDelegate | Events |
| FLVPlayback | FLVPlaybackEventDelegate | Play,Pause,Stopped,PlayheadUpdate,StateChange,AutoRewound,Close,Complete,FastForward,Rewind, SkinLoaded,Seeked,ScrubStart,ScrubFinish,Ready,BufferState |
| Button (Inherits Events) | Change,LabelChange,ButtonDown |
To support any of those components, you need to add the EventListenerDelegate for the target component to the event manager. See the example above for using the FLVPlaybackEventDelegate
Non-negotiable event types that always pass event objects to your callbacks:
| Method | Defined by | ||
|---|---|---|---|
|
addEventListenerDelegate(klassOfObject:Class, klassHandler:Class):void
Add a custom IEventHandlerDelegate.
| EventManager | ||
|
disposeEventsForObject(obj:IEventDispatcher):void
Dispose of events for an object that was being managed by this event manager.
| EventManager | ||
|
disposeEventsForObjects(... objects):void
Dispose of events for multiple objects.
| EventManager | ||
|
[static]
Singleton access.
| EventManager | ||
|
handleEvents(obj:IEventDispatcher, callbackDelegate:String, callbackPrefix:Boolean, returnEventObjects:Boolean = false, cycleThroughTracking:Boolean = false, cycleAllThroughTracking:String = "false", trackingID:* = null):void
Add auto event handling for a target object.
| EventManager | ||
|
handleEventsForObjects(callbackDelegate:*, objects:Array, prefixes:Array, returnEventObjects:Boolean = false, cycleThroughTracking:Boolean = false):void
| EventManager | ||
| addEventListenerDelegate | () | method |
public function addEventListenerDelegate(klassOfObject:Class, klassHandler:Class):voidAdd a custom IEventHandlerDelegate. The class must be an implementation of IEventHandlerDelegate.
ParametersklassOfObject:Class |
|
klassHandler:Class |
| disposeEventsForObject | () | method |
public function disposeEventsForObject(obj:IEventDispatcher):voidDispose of events for an object that was being managed by this event manager.
Parametersobj:IEventDispatcher — The object in which events are being managed in this manager.
|
| disposeEventsForObjects | () | method |
public function disposeEventsForObjects(... objects):voidDispose of events for multiple objects.
Parameters... objects — An array of objects whose events should be disposed of.
|
| gi | () | method |
| handleEvents | () | method |
public function handleEvents(obj:IEventDispatcher, callbackDelegate:String, callbackPrefix:Boolean, returnEventObjects:Boolean = false, cycleThroughTracking:Boolean = false, cycleAllThroughTracking:String = "false", trackingID:* = null):voidAdd auto event handling for a target object.
Parametersobj:IEventDispatcher — The object to add event listeners to.
|
|
callbackDelegate:String — callbackDelegate The object in which your callback methods are defined.
|
|
callbackPrefix:Boolean — A prefix for all callback function definitions.
|
|
returnEventObjects:Boolean (default = false) — Whether or not to pass the origin event objects back to your callbacks (with exception of non-negotiable event types).
|
|
cycleThroughTracking:Boolean (default = false) — For every event that is handled, pass the same event through the tracking framework. Only events that have callbacks will be passed through tracking.
|
|
cycleAllThroughTracking:String (default = "false") — Automatically adds listeners for every event that the target object dispatches, in order to grab every
event and pass to tracking, without requiring you to have a callback method defined on your callbackDelegate.
|
|
trackingID:* (default = null) — Define a custom trackingID to pass through the tracking framework. For events dispatched from the provided object. The id
is made up your tracking id + the acual event.
|
| handleEventsForObjects | () | method |
public function handleEventsForObjects(callbackDelegate:*, objects:Array, prefixes:Array, returnEventObjects:Boolean = false, cycleThroughTracking:Boolean = false):voidParameters
callbackDelegate:* |
|
objects:Array |
|
prefixes:Array |
|
returnEventObjects:Boolean (default = false) |
|
cycleThroughTracking:Boolean (default = false) |