只需具有相似的属性

时间:2015-11-03 22:17:25

标签: javascript jquery three.js tween

如何简化以下功能?

我有一堆补间具有基本相同的缓动属性。 我意识到这个问题非常广泛,但我还没有想出足够令人满意的东西。

    $('input').change(function() {
    if($("#radio").is(":checked")){

        var tween = new TWEEN.Tween(tween1.scale).to({ y: 4 }, 1000).start();
        tween.easing(TWEEN.Easing.Elastic.InOut);
        tween.yoyo(true);

        var tween = new TWEEN.Tween(tween2.position).to({ y: 0.05 }, 1000).start();
        tween.easing(TWEEN.Easing.Elastic.InOut);
        tween.yoyo(true);

        var tween = new TWEEN.Tween(tween3.scale).to({ y: 6 }, 1000).start();
        tween.easing(TWEEN.Easing.Elastic.InOut);
        tween.yoyo(true);

        ...

 }
 });

1 个答案:

答案 0 :(得分:1)

最经典的方法是声明一个函数:

function doTween(attr, y) {
    var tween = new TWEEN.Tween(attr).to({ y: y }, 1000).start();
    tween.easing(TWEEN.Easing.Elastic.InOut);
    tween.yoyo(true);
}

并使用

致电
doTween( tween1.scale, 4 );
doTween( tween2.position, 0.05 );
doTween( tween3.scale, 6 );