В настоящее время я немного экспериментирую с 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
);
});
Итак, что я не понимаю, так это то, почему Easing настолько «медленный» по сравнению с SpringTransition, управляемым физикой?
t
в github.com/ Famous/transitions/blob/master/Easing.js, чтобы он получал позицию во время цикла.SpringTransition
на самом деле используетPhysicEngine
github.com/Famous/physics/blob/master/PhysicsEngine .js, чтобы оптимизировать производительность - person HP.   schedule 28.05.2014