包 | fl.ik |
类 | public class IKManager |
继承 | IKManager EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
骨架只能在 Flash 创作工具中创建。在发布具有骨架的 Flash CS4 文档时,Flash 创作工具将在 SWF 文件中保存骨架的 XML 表示形式和生成的一些 ActionScript 代码。在运行时,Flash Player 将执行该 ActionScript 代码,并分析 XML 以重新创建骨架。
您不必创建 IKManager 类的实例:运行时会自动创建该类的实例。此外,IKManager 类的所有属性和方法都是静态的:您不必引用 IKManager 类的实例。
注意:在文档类中引用 IKArmature 对象时,必须确保首先检查 frameConstructed
事件,以确保已填充所有对象。
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
numArmatures : int [静态] [只读]
舞台上骨架的数量。 | IKManager |
方法 | 由以下参数定义 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
[静态]
返回指定索引处的骨架。 | IKManager | ||
[静态]
返回具有指定名称的骨架。 | IKManager | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
[静态]
使用此方法指示加载的 SWF 文件中的符号容器。 | IKManager | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
[静态]
启用或禁用所有骨架的实时跟踪。 | IKManager | ||
[静态]
启用或禁用指定 IKArmature 实例的实时跟踪。 | IKManager | ||
[静态]
启用或禁用指定 IK 显示对象实例的实时跟踪。 | IKManager | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
numArmatures | 属性 |
getArmatureAt | () | 方法 |
public static function getArmatureAt(index:int):IKArmature
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回指定索引处的骨架。
参数
index:int — 要检索的骨架的从零开始的索引号。
|
IKArmature — 返回指定索引处的 IKArmature 实例。
|
示例 ( 如何使用本示例 )
frameConstructed
事件而不是 addedToStage
事件。这会确保填充所有 IKArmature。
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 | () | 方法 |
public static function getArmatureByName(name:String):IKArmature
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回具有指定名称的骨架。
参数
name:String — 要检索的骨架的名称。
|
IKArmature — 返回具有指定名称的 IKArmature 实例。
|
示例 ( 如何使用本示例 )
import fl.ik.*; // Retrieve the IKArmature named "arm0" and assign to variable "tree" var tree:IKArmature = IKManager.getArmatureByName("arm0");
setStage | () | 方法 |
public static function setStage(stage:DisplayObjectContainer):void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
使用此方法指示加载的 SWF 文件中的符号容器。加载包含骨架时的 SWF 文件时,需要向父 SWF 文件表明骨架符号的位置。如果子 SWF 文件包含位于舞台上的骨架符号,则此值为 stage
或代表舞台的变量。
参数
stage:DisplayObjectContainer — 加载的 SWF 文件中骨架符号的位置。
|
示例 ( 如何使用本示例 )
setStage()
将子 SWF 文件中的符号容器的名称告知父 SWF 文件。
myAnimation.fla 文件的 ActionScript(用于生成子 SWF 文件):
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;
Main.fla 文件的 ActionScript(用于生成父 SWF 文件):
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 | () | 方法 |
public static function trackAllArmatures(enable:Boolean = true):void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
启用或禁用所有骨架的实时跟踪。如果启用了实时跟踪,包含骨架的 SWF 文件的用户可以通过单击并拖动骨架来移动骨架。
参数
enable:Boolean (default = true ) — 如果设置为 false ,则禁用实时跟踪。否则启用实时跟踪。
|
相关 API 元素
示例 ( 如何使用本示例 )
import fl.ik.*; // disable live tracking for all armatures in the SWF file IKManager.trackAllArmatures(false);
trackIKArmature | () | 方法 |
public static function trackIKArmature(theTree:IKArmature, enable:Boolean = true):void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
启用或禁用指定 IKArmature 实例的实时跟踪。如果启用了实时跟踪,包含骨架的 SWF 文件的用户可以通过单击并拖动骨架来移动骨架。
参数
theTree:IKArmature — 要为其启用或禁用实时跟踪的骨架。
| |
enable:Boolean (default = true ) — 如果设置为 false ,则禁用实时跟踪。否则启用实时跟踪。
|
相关 API 元素
示例 ( 如何使用本示例 )
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 | () | 方法 |
public static function trackIKObject(target:DisplayObject, enable:Boolean = true):*
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS4 |
运行时版本: | Flash Player 10, AIR 1.5 |
启用或禁用指定 IK 显示对象实例的实时跟踪。如果为特定的 IK 显示对象实例启用了实时跟踪,则用户可以通过单击并拖动 IK 显示对象来移动包含该 IK 显示对象实例的骨架。
参数
target:DisplayObject — 要为其启用或禁用实时跟踪的 IK 显示对象实例。
| |
enable:Boolean (default = true ) — 如果设置为 false ,则禁用实时跟踪。否则启用实时跟踪。
|
* |
相关 API 元素
示例 ( 如何使用本示例 )
rightHand
和 leftHand
表示;两个实例均为 MovieClip 实例:
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);
Tue Jun 12 2018, 11:04 AM Z