topical media & game development

talk show tell print

lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction.ax

lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction.ax (swf ) [ flash ] flex


  package org.as3lib.kitchensync.action
  {
          import flash.events.*;
          
          import org.as3lib.kitchensync.core.*;
          
          
An action for calling an asynchronous function that is expected to dipatch an event when it completes.
author: Mims Wright @since 1.5

  
          public class @ax-lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction extends KSFunction
          {
                  
a reference to the event dispatcher

  
                  protected var _completeEventDispatcher:IEventDispatcher;
                  
the type of event to listen for

  
                  protected var _completeEventType:String;
                  
                  
Constructor.
parameter: delay The time to wait before calling the function.
parameter: func The function to call
parameter: completeEventDispatcher The IEventDispatcher that will fire the event signaling that the function is complete.
parameter: completeEventType The type (name) of the event that will be fired when complete.
parameter: args All additional parameters will be passed as arguments to the function when it is called.

  
                  public function @ax-lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction(delay:*, func:Function, completeEventDispatcher:IEventDispatcher, completeEventType:String, ...args)
                  {
                          super(delay, func);
                          this._args = args;
                          
                          _completeEventDispatcher = completeEventDispatcher;
                          _completeEventType = completeEventType;
                          
                          _completeEventDispatcher.addEventListener(_completeEventType, onFunctionComplete, false, 0, true);
                  }
                  
                  
Executes the function when the delay has elapsed.

  
                  override public function update(currentTimestamp:Timestamp):void {
                          if (startTimeHasElapsed) {
                                  invoke();
                                  unregister();
                          }
                  }
                  
                  
Event listener that is called when the asyncronous function is completed.

  
                  protected function onFunctionComplete(event:Event):void {
                          _completeEventDispatcher.removeEventListener(_completeEventType, onFunctionComplete);
                          complete();
                  }
                  
                  override public function clone():IAction {
                          var clone:@ax-lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction = new @ax-lib-flex-animation-code-10-org-as3lib-kitchensync-action-KSAsynchronousFunction(_delay, _func, _completeEventDispatcher, _completeEventType);
                          clone._args = _args;
                          clone.duration = _duration;
                          clone.autoDelete = _autoDelete;
                          return clone;
                  }
                  
                  override public function kill():void {
                          super.kill();
                          _completeEventDispatcher = null;
                  }
                  
          }
  }


(C) Æliens 19/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.