具有相似属性的简单功能
Simply function with similar properties
如何简化下面的函数?
我有一堆具有基本相同的缓动属性的补间。
我意识到这个问题很广泛,但我还没有想出足够令人满意的东西。
$('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);
...
}
});
最经典的方法是声明一个函数:
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 );
如何简化下面的函数?
我有一堆具有基本相同的缓动属性的补间。 我意识到这个问题很广泛,但我还没有想出足够令人满意的东西。
$('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);
...
}
});
最经典的方法是声明一个函数:
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 );