2018년 8월 9일

오늘 한 일

내일 할 일

배민찬

화면전환효과 리팩토링

SceneChange클래스의 기능이 많고 복잡해서 분리하기로 함

설계

버튼

각 버튼(왼쪽, 오른쪽, 인덱스)이 애니메이션을 가짐

이벤트가 발생하면 애니메이션을 sceneChange에 넘겨줌

scene

SceneChange는

class SceneChangeButton {
    constructor({animation, speed}) {}
    bindAnimateScene(handler) {}
}
class SceneChange {
    // @param {Array} sceneChangeButtons
    // @param {NodeList} sceneList
    constructor({sceneChangeButtons, sceneList}) {}
    init() {
        sceneChangeButtons.forEach(scb => {scb.bindAnimateScene(this.animateScene)})
    }
    animateScene({animation, index}) {}
}
animation

currying을 이용함. 스피드값을 넘겨받으면 해당 스피드를 가진 animation함수를 리턴

let fade = function({speed}) {
    return function({previous, next}) {
        ...
    }
}