|
|
IK 骨架动画处理概述在创建 IK 骨架后,可使用 fl.ik 类在运行时限制骨架的移动、跟踪其事件并对其进行动画处理。 下图演示了一个名为 Wheel 的影片剪辑。 轴是一个名为 Axle 的 IKArmature 实例。IKMover 类会在轮子旋转时同步移动骨架。骨架中的 IKBone (ikBone2) 在其尾部连接处附加到轮子。 ![]()
在运行时,轮子结合 __motion_Wheel 补间动画(在“使用补间动画”一章中的描述动画中进行了介绍)进行旋转。由一个 IKMover 对象启动和控制轴的移动。下图演示了附加到旋转轮上的轴骨架在旋转中的不同帧上的两个快照。 ![]() 在运行时,下面的 ActionScript 可完成以下功能:
import fl.ik.*
var tree:IKArmature = IKManager.getArmatureByName("Axle");
var bone:IKBone = tree.getBoneByName("ikBone2");
var endEffector:IKJoint = bone.tailJoint;
var pos:Point = endEffector.position;
var ik:IKMover = new IKMover(endEffector, pos);
ik.limitByDistance = true;
ik.distanceLimit = 0.1;
ik.limitByIteration = true;
ik.iterationLimit = 10;
Wheel.addEventListener(Event.ENTER_FRAME, frameFunc);
function frameFunc(event:Event)
{
if (Wheel != null)
{
var mat:Matrix = Wheel.transform.matrix;
var pt = new Point(90, 0);
pt = mat.transformPoint(pt);
ik.moveTo(pt);
}
}
用于移动轴的 IK 类为:
有关这些类的完整而详细的说明,请参阅 ik 包。 |