簡體   English   中英

如何在as3中單擊鼠標獲取骨骼名稱

[英]How get name of bone on mouse click in as3

誰能告訴我如何通過(例如)鼠標單擊來獲得骨骼名稱(電樞)。 或者至少我如何通過as3代碼獲取骨骼列表。

感謝您的任何想法。

您似乎已經有一個電樞鏈接。 它具有rootJoint屬性,該屬性返回IKJoint對象。 然后,您通過正常的for()循環遞歸地通過其子級:

var rj:IKJoint=yourArmature.rootJoint;
for (i=rj.numChildren-1;i>=0;i--) {
    trace(rj.getChildAt(i).bone.name);
}

但是,IK通常是一棵樹,因此,它只會得到一層骨頭,因此您很可能需要走得更深。 因此,使一個遞歸函數在IKJoint有子代時調用它自己。

function getBones(j:IKJoint):void {
    if (j==null) return; // no joint. Seems possible
    if (j.numChildren==0) return;
    for (i=j.numChildren-1;i>=0;i--) {
        var tj:IKJoint=j.getChildAt(i);
        var tb:IKBone=tj.bone;
        if ((tj==tb.headJoint)||(j==tb.headJoint)) getBones(tb.tailJoint);
            else getBones(tb.headJoint); 
        // parse the bone "tb" here
    }
}

然后,您可以從root關節調用此函數,並將列表放在一系列解析中。 我希望您在單擊鼠標時不會感到骨頭,因為它們實際上是不可見的,因此您只能獲得帶有IK骨架的MovieClip元素。

我假設您正在尋找IKManager類: IKManager

例如這樣的事情(跟蹤電樞列表):

for (var i=0; i < IKManager.numArmatures; i++){
    trace(IKManager.getArmatureAt(i).name);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM