適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
fl.ik 

IKManager  - AS3 Flash

套件fl.ik
類別public class IKManager
繼承IKManager Inheritance EventDispatcher Inheritance Object

語言版本: ActionScript 3.0
產品版本: Flash CS4
執行階段版本: Flash Player 10, AIR 1.5

IKManager 類別是一個代表文件中所定義之所有反向運動 (IK) 樹狀結構 (骨架) 的容器類別,而且允許在執行階段管理這些骨架。

骨架只能在 Flash 編寫工具中建立。當您發佈含有骨架的 Flash CS4 文件時,Flash 編寫工具就會將這些骨架的 XML 形式以及產生的部分 ActionScript 程式碼儲存在 SWF 檔中。在執行階段中,Flash Player 會執行 ActionScript 程式碼並剖析 XML 以重新建立骨架。

您不需要建立 IKManager 類別的實體;執行階段會自動建立這個類別的實體。此外,IKManager 類別的所有屬性和方法都是靜態的;您不需要參考 IKManager 類別的實體。

注意:在 document 類別中參考 IKArmature 物件時,請務必先檢查 frameConstructed 事件,確定已經填入所有的物件。



公用屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  numArmatures : int
[靜態] [唯讀] 舞台上的骨架數目。
IKManager
公用方法
 方法定義自
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。
EventDispatcher
 Inherited
會將事件傳送到事件流程。
EventDispatcher
  
[靜態] 傳回位於指定索引處的骨架。
IKManager
  
[靜態] 傳回具有指定名稱的骨架。
IKManager
 Inherited
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。
EventDispatcher
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
會從 EventDispatcher 物件移除偵聽程式。
EventDispatcher
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
  
[靜態] 請使用此方法指示在載入的 SWF 檔案中,元件的容器為何。
IKManager
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
  
[靜態] 啟用或停用所有骨架的即時追蹤。
IKManager
  
trackIKArmature(theTree:IKArmature, enable:Boolean = true):void
[靜態] 啟用或停用指定之 IKArmature 實體的即時追蹤。
IKManager
  
trackIKObject(target:DisplayObject, enable:Boolean = true):*
[靜態] 啟用或停用指定之 IK 顯示物件實體的即時追蹤。
IKManager
 Inherited
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。EventDispatcher
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。EventDispatcher
屬性詳細資訊

numArmatures

屬性
numArmatures:int  [唯讀]

語言版本: ActionScript 3.0
產品版本: Flash CS4
執行階段版本: Flash Player 10, AIR 1.5

舞台上的骨架數目。如果在 SWF 檔之後載入其他 SWF 檔,將不會包含所載入 SWF 檔中的任何骨架。



實作
    public static function get numArmatures():int
方法詳細資訊

getArmatureAt

()方法
public static function getArmatureAt(index:int):IKArmature

語言版本: ActionScript 3.0
產品版本: Flash CS4
執行階段版本: Flash Player 10, AIR 1.5

傳回位於指定索引處的骨架。

參數

index:int — 要擷取之骨架的索引數字 (從零開始)。

傳回值
IKArmature — 傳回位於指定索引處的 IKArmature 實體。

範例  ( 如何使用本範例 )
下列範例會擷取樹狀結構中的第一個骨架. 若要在 document 類別中參考 armatures,請使用 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 檔案中的骨架元件位置。


範例  ( 如何使用本範例 )
在以下範例中,一個 SWF 檔案會載入另一個包含骨架的 SWF 檔案。SWF 子檔案 (包含骨架元件的 SWF 檔案) 是從 myAnimation.fla 檔案產生的。SWF 父檔案 (載入 myAnimation.swf 檔案的 SWF 檔案) 是從 Main.fla 檔案產生的。myAnimation.fla 檔案包含一組放置於舞台的骨架元件。一行 ActionScript 即可為舞台設定 myAnimationStage 變數,在本案例是指骨架元件的容器。Main.fla file 中的 ActionScript 使用 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 元素


範例  ( 如何使用本範例 )
下列範例會防止 SWF 檔的使用者控制任何骨架的移動:
             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 元素


範例  ( 如何使用本範例 )
下列範例可讓 SWF 檔的使用者透過按一下並拖曳人形圖案的任何部分 (軀幹除外),控制此圖案的移動。此人像是由名為「personTree」的 IKArmature 表示,其中包含名為「torso」且代表人像軀幹的 IKObject:
             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 元素


範例  ( 如何使用本範例 )
下列範例可讓 SWF 檔的使用者透過按一下並拖曳人形圖案的手部,控制該圖案的移動。手部是由 IK 顯示物件實體 rightHandleftHand 表示;這兩個實體都是 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);
             




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。