我目前正在对 Famo.us 进行一些试验,实际上有一件事我还无法理解。
在一个小例子中,我尝试创建一个 HeaderFooterLayout,其中标题包含一个简单的左对齐图标。单击它会将其弹回标题的右端。
现在有了一个简单的 Transform.translate,这在我的 Nexus4 和 Nexus 7 上并不像预期的那么顺利,但是把它改成 SpringTransition 真是太棒了。这是代码示例:
var Transitionable = require('famous/transitions/Transitionable');
var SpringTransition = require('famous/transitions/SpringTransition');
Transitionable.registerMethod('spring', SpringTransition);
var logoStateModifier = new StateModifier({});
var logo = new ImageSurface({
size: [186, 43],
content: 'images/my-logo.png'
});
var posX = 0;
var adjustment = 20;
// Click event on image
logo.on('click', function() {
if(posX === 0) {
posX = (window.innerWidth - logo.size[0] - adjustment);
} else {
posX = 0;
}
var spring = {
method: 'spring',
period: 10,
dampingRatio: 0.3,
};
// transform translate with Easing
logoStateModifier.setTransform(
Transform.translate(posX,0,0),
{ duration: 1000, curve: Easing.inOutBack}
);
// spring transition
logoStateModifier.setTransform(
Transform.translate(posX, 0, 0), spring
);
});
所以我在这里不明白的是,与物理驱动的 SpringTransition 相比,为什么 Easing 如此“慢”?