2015-11-03 34 views
0

如何简化以下功能?只需使用类似属性

我有一群有basicailly相同缓解特性的补间。 我意识到这个问题相当广泛,但我还没有拿出任何满意的东西。

$('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

最经典的方式是定义一个函数:

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);