Transition의 현재 상태를 반환하는 객체다.
단독적으로 사용하지 않고 Surface나 Modifier에 붙여서 사용
var state = new Transitionable(0); state.set(100, {duration : 500});//바로 실행 state.get(); //현재 상태 반환
[x,y,z]좌표값을 넣을 수 있다.
마지막 인자로 함수를 넣으면 콜백이 실행됨.
var state = new Transitionable(0); state.set(100, {duration : 500}, function(){ alert('done!'); });
즉, Surface나 Modifier에서 set을 호출하고 get을 호출하여 값을 받아 움직인다고 생각하면 될 것 같다.
Transition은 Tween, Physics으로 두개가 있다.
Tween Transitions
간단하게는 위에처럼 하고 30개의 curve을 제공한다.
var state = new Transitionable(0); state.set(100, {duration : 500, curve : 'easeInOut'});
혹은 기본적으로 들어 있는 경우가 아닌 경우 직접 아래와 같이 등록해서 사용가능.
물론 만드는 것도 가능.
var TweenTransition = require('famous/transitions/TweenTransition'); TweenTransition.registerCurve('inSine', Easing.inSine);
//ex) var customCurve = function(t){ return Math.pow(t,2); }; var TweenTransition = require('famous/transitions/TweenTransition'); TweenTransition.registerCurve('custom', customCurve);
Physics Transitions
가속도가 붙은 물리 transition이다.
SpringTransition
- 점을 넘어서 바운스
WallTransition
- 점을 안쪽에서 바운스
SnapTransition
- 스프링과 비슷한데 damping이 항상 들어감.
Tweens vs Physics
정확한 값이 아니고 정확한 타이밍에 이벤트를 발생시켜야 하는게 아니지만, 사용자 이벤트에 따라 변경하고 싶다면 사용한다.