AnimationHandler已经改为threejs,我怎样才能让它工作?

时间:2015-04-03 14:26:16

标签: three.js

我使用threejs库创建了一个webgl动画,不久前,今天我一直试图让它在最新版本的three.js库上运行。

在最新的库中,没有pathcontrols.js。

我将pathcontrols.js从我的旧库复制到了新版本,但这还没有解决问题,

下面是无法正常工作的完整函数,但是我认为问题出现的是.add()和animation()调用:

function initAnimationPath( parent, spline, name, duration ) { 
   var animationData = {
       name: name,
       fps: 0.6,
       length: duration,
       hierarchy: []

    };

    var i,
        parentAnimation, childAnimation,
        path = spline.getControlPointsArray(),
        sl = spline.getLength(),
        pl = path.length,
        t = 0,
        first = 0,
        last  = pl - 1;

    parentAnimation = { parent: -1, keys: [] };
    parentAnimation.keys[ first ] = { time: 0,        pos: path[ first ], rot: [ 0, 0, 0, 1 ], scl: [ 1, 1, 1 ] };
    parentAnimation.keys[ last  ] = { time: duration, pos: path[ last ],  rot: [ 0, 0, 0, 1 ], scl: [ 1, 1, 1 ] };

    for ( i = 1; i < pl - 1; i++ ) {

        t = duration * sl.chunks[ i ] / sl.total;

        parentAnimation.keys[ i ] = { time: t, pos: path[ i ] };

    }

    animationData.hierarchy[ 0 ] = parentAnimation;

    THREE.AnimationHandler.add( animationData );

    return new THREE.Animation( parent, name, THREE.AnimationHandler.CATMULLROM_FORWARD, false );

};
似乎对animationhandler.add()的弃用似乎是个问题,但我很难解决如何更换它。

(在许多其他事情中)我尝试用这个代替动画处理程序行和动画行:

    THREE.AnimationHandler.update(delta);
    return new THREE.Animation( camera, animationData);

没有快乐。我想知道如何开始动画?

由于

0 个答案:

没有答案