套件 | fl.ik |
類別 | public class IKManager |
繼承 | IKManager EventDispatcher Object |
語言版本: | ActionScript 3.0 |
產品版本: | Flash CS4 |
執行階段版本: | Flash Player 10, AIR 1.5 |
骨架只能在 Flash 編寫工具中建立。當您發佈含有骨架的 Flash CS4 文件時,Flash 編寫工具就會將這些骨架的 XML 形式以及產生的部分 ActionScript 程式碼儲存在 SWF 檔中。在執行階段中,Flash Player 會執行 ActionScript 程式碼並剖析 XML 以重新建立骨架。
您不需要建立 IKManager 類別的實體;執行階段會自動建立這個類別的實體。此外,IKManager 類別的所有屬性和方法都是靜態的;您不需要參考 IKManager 類別的實體。
注意:在 document 類別中參考 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
事件。這樣可以保證填入所有的 IKArmatures。
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, 03:47 PM Z