JavaFX | JavaFX 애니메이션 기능 | Timeline 사용


이전 클래스는 기본적으로 “현재 상태에서 다음 상태로 변화"하는 2개의 상태를 매끄럽게 전환하는 애니메이션을 간단히 만들수 있는 것이다. 더 복잡한 움직임을 실현하려고 이것들을 몇개씩 이어가는 것은 효율적이지 않다.

이러한 경우에 사용되는 것이 “Timeline"라는 클래스이다. Timeline은 문자 그대로 애니메이션의 타임 라인 (시간당 변화를 관리하는 것)이 된다.

이 Timeline을 사용하려면 “KeyFrame"라는 클래스가 필요하다. 이것은 타임 라인에 설정하는 키 프레임 (특정 시간에 애니메이션의 상태를 설정하는 것)이 된다.

Timeline는 먼저 인스턴스를 만들고 거기에 키 프레임이 되는 KeyFrame을 필요에 따라 조합해 간다. 그래서 필요한 설정이 된다면 play 애니메이션을 시작하는 흐름이 된다. 그럼, 애니메이션 작성에 필요한 것들을 정리해 보겠다.

Timeline 만들기

new Timeline();

Timeline 인스턴스는 인수가 없는 디폴트 생성자로 만들 수 있다. 그 자체로는 지금까지의 애니메이션 클래스처럼 Node와 Duration 등은 설정하지 않는다.

KeyFrame 만들기

new KeyFrame("Duration", "KeyValue");

KeyFrame는 인수로 “Duration"과 “KeyValue"라는 인스턴스를 지정한다. Duration은 앞서 등장한 애니메이션의 재생 시간을 처리하는 Duration 인스턴스이다.

KeyValue는 키에 설정하는 값을 처리하는 클래스이다. 이것은 다음과 같이 만든다.

KeyValue 만들기

new keyValue("Property 값");

KeyValue는 속성을 나타내는 “Property"인터페이스를 구현하는 클래스와 거기에 설정되는 값을 인수로 지정한다. 모양의 특성 등은 그 대부분 모든 Property 인터페이스를 구현하여 작성되고, 속성을 나타내는 Property 인스턴스를 꺼내는 메소드가 준비되어 있다. 그것을 이용하여 작업 모양의 작업 속성을 나타내는 Property 인스턴스와 거기에 설정 값을 인수하고 KeyValue를 작성한다.

이것으로 애니메이션에 필요한 “Timeline”, “KeyFrame” 그리고 KeyFrame에 필요한 “KeyValue"라는 것이 준비 되었다. 다음에 이를 바탕으로 애니메이션의 정보를 조립해 보도록 하겠다.