ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
fl.ik 

IKManager  - AS3 Flash

Packagefl.ik
Classpublic class IKManager
InheritanceIKManager Inheritance EventDispatcher Inheritance Object

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

The IKManager class is a container class that represents all the inverse kinematics (IK) trees (armatures) defined in a document, and allows the management of those armatures at run time.

Armatures can be created only in the Flash authoring tool. When you publish a Flash CS4 document with armatures, the Flash authoring tool stores an XML representation of the armatures and some generated ActionScript code in the SWF file. At run time, Flash Player executes the ActionScript code and parses the XML to recreate the armatures.

You do not need to create an instance of the IKManager class; the runtime creates an instance of this class automatically. Additionally, all of the properties and methods of the IKManager class are static; you do not need to refer to an instance of the IKManager class.

Note: When referencing IKArmature objects within a document class, be sure to first check the frameConstructed event to ensure that all objects have been populated.



Public Properties
 PropertyDefined By
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  numArmatures : int
[static] [read-only] The number of armatures on the stage.
IKManager
Public Methods
 MethodDefined By
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
[static] Returns the armature at the specified index.
IKManager
  
[static] Returns the armature with the specified name.
IKManager
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
  
[static] Use this method to indicate the container of symbols in a loaded SWF file.
IKManager
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
  
[static] Enables or disables live-tracking for all armatures.
IKManager
  
trackIKArmature(theTree:IKArmature, enable:Boolean = true):void
[static] Enables or disables live-tracking for the specified IKArmature instance.
IKManager
  
trackIKObject(target:DisplayObject, enable:Boolean = true):*
[static] Enables or disables live-tracking for the specified IK display object instance.
IKManager
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
Property Detail

numArmatures

property
numArmatures:int  [read-only]

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

The number of armatures on the stage. If the SWF file subsequently loads other SWF files, any armatures in the loaded SWF files are not included.



Implementation
    public static function get numArmatures():int
Method Detail

getArmatureAt

()method
public static function getArmatureAt(index:int):IKArmature

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Returns the armature at the specified index.

Parameters

index:int — The zero-based index number of the armature to retrieve.

Returns
IKArmature — Returns the IKArmature instance at the specified index.

Example  ( How to use this example )
The following example retrieves the first armature in the tree. To reference armatures within a document class, use the frameConstructed event instead of the addedToStage event. This ensures that all IKArmatures are populated.
         package
         {
            import fl.ik;
            import flash.display.MovieClip;
            import flash.events;
         
            public class IKDocClass extends MovieClip
            {
               public var arm:IKArmature;
         
               function IKDocClass()
               {
                  addEventListener("frameConstructed", onFC);
               }
         
               function onFC(evt:Event):void
               {
                  //Refer to armatures in frameConstructed
                  arm = IKManager.getArmatureAt(0);
                  trace(arm.name);
                  removeEventListener("frameConstructed", onFC);
               }
            }
         }  
         

getArmatureByName

()method 
public static function getArmatureByName(name:String):IKArmature

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Returns the armature with the specified name.

Parameters

name:String — The name of the armature to retrieve.

Returns
IKArmature — Returns the IKArmature instance with the specified name.

Example  ( How to use this example )
The following example retrieves the first armature in the tree:
         import fl.ik.*;
         // Retrieve the IKArmature named "arm0" and assign to variable "tree"
         var tree:IKArmature = IKManager.getArmatureByName("arm0");
         

setStage

()method 
public static function setStage(stage:DisplayObjectContainer):void

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Use this method to indicate the container of symbols in a loaded SWF file. When you load a SWF file containing an armature, you need to indicate the location of the symbols for the armature to the parent SWF file. If the child SWF file has the armature symbols on the stage, then the value is stage or a variable for the stage.

Parameters

stage:DisplayObjectContainer — The location of the armature symbols in a loaded SWF file.

Example  ( How to use this example )
In the following example, one SWF file will load another SWF file containing an armature. The child SWF file (the one containing the armature symbols) is generated from the myAnimation.fla file. The parent SWF file (the one loading the myAnimation.swf file) is generated from the Main.fla file. The myAnimation.fla file contains a set of armature symbols placed on the stage. A line of ActionScript sets the variable myAnimationStage for stage, which in this case is the container of the armature symbols. The ActionScript in the Main.fla file uses setStage() to tell the parent SWF file the name of the symbol container in the child SWF file.

ActionScript for the myAnimation.fla file (to generate the child SWF file):

         import fl.ik.*;
         
         var myAnimationIKM = IKManager;
         var myAnimationArm:IKArmature = IKManager.getArmatureAt(0);
         // set a variable for the stage containing the armature symbols
         var myAnimationStage:DisplayObjectContainer = stage;
         

ActionScript for the Main.fla file (to generate the parent SWF file):

         var myLoader:Loader = new Loader();
         myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteFunc);
         
         function onCompleteFunc(event:Event) {
             // indicate container of the armature symbols
             myLoader.content.myAnimationIKM.setStage(loader.content.myAnimationStage);
             myLoader.content.myAnimationArm.registerElements(loader.content.myAnimationStage);
             myLoader.content.myAnimationIKM.trackAllArmatures();
         }
         
         myLoader.load(new URLRequest("myAnimation.swf"));
         addChild(myLoader);
         

trackAllArmatures

()method 
public static function trackAllArmatures(enable:Boolean = true):void

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Enables or disables live-tracking for all armatures. When live-tracking is enabled, the user of a SWF file that contains armatures can move an armature by clicking and dragging the armature.

Parameters

enable:Boolean (default = true) — If set to false, live-tracking is disabled. Otherwise, live-tracking is enabled.

Related API Elements


Example  ( How to use this example )
The following example prevents the user of a SWF file from controlling the movement of any armature:
             import fl.ik.*;
             // disable live tracking for all armatures in the SWF file
             IKManager.trackAllArmatures(false);
             

trackIKArmature

()method 
public static function trackIKArmature(theTree:IKArmature, enable:Boolean = true):void

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Enables or disables live-tracking for the specified IKArmature instance. When live-tracking is enabled, the user of a SWF file that contains armatures can move an armature by clicking and dragging the armature.

Parameters

theTree:IKArmature — The armature to have live-tracking enabled or disabled for.
 
enable:Boolean (default = true) — If set to false, live-tracking is disabled. Otherwise, live-tracking is enabled.

Related API Elements


Example  ( How to use this example )
The following example enables the user of a SWF file to control the movement of a human figure by clicking on and dragging any part of the figure except the torso. The figure is represented by an IKArmature named "personTree" which contains an IKObject named "torso" that represents the figure's torso:
             import fl.ik.*;
             // turn off tracking for all armatures in the SWF file
             IKManager.trackAllArmatures(false);
             // enable live tracking for the entire armature
             IKManager.trackIKArmature(personTree, true);
             // disable live tracking for the figure's torso
             IKManager.trackIKObject(torso, false);
             

trackIKObject

()method 
public static function trackIKObject(target:DisplayObject, enable:Boolean = true):*

Language Version: ActionScript 3.0
Product Version: Flash CS4
Runtime Versions: Flash Player 10, AIR 1.5

Enables or disables live-tracking for the specified IK display object instance. When live-tracking is enabled for a specific IK display object instance, the user can move the armature that contains the IK display object instance by clicking and dragging that IK display object.

Parameters

target:DisplayObject — The IK display object instance to have live-tracking enabled or disabled for.
 
enable:Boolean (default = true) — If set to false, live-tracking is disabled. Otherwise, live-tracking is enabled.

Returns
*

Related API Elements


Example  ( How to use this example )
The following example enables the user of a SWF file to control the movement of a human figure by clicking and dragging only the hands of that figure. The hands are represented by IK display object instances rightHand and leftHand; both are MovieClip instances:
             import fl.ik.*;
             // turn off tracking for all armatures in the SWF file
             IKManager.trackAllArmatures(false);
             // enable live tracking for the right hand
             IKManager.trackIKObject(rightHand, true);
             // enable live tracking for the left hand
             IKManager.trackIKObject(leftHand, true);