Latihan 1 dari materi Lottie & SVG Animation di Web Animation — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi createLottieController(durationFrames, fps): pemutar kecil yang meniru remote lottie-web, tanpa browser. Kode awal sudah berisi function kosongnya dan baris console.log-nya; isi function-nya, dan biarkan baris console.log seperti adanya.
Function itu mengembalikan object dengan:
playing, awalnya false, dan currentFrame, awalnya 0.
play() membuat playing jadi true; pause() membuatnya false.
stop() membuat playing jadi false dan currentFrame kembali ke 0.
goToFrame(frame) memasang currentFrame ke frame, ditahan di antara 0 dan durationFrames - 1 (frame terakhir).
getProgress() mengembalikan currentFrame / (durationFrames - 1), dibulatkan 2 desimal dengan Math.round(x * 100) / 100.
getDurationMs() mengembalikan (durationFrames / fps) * 1000.
Yang dinilai, enam baris console harus persis, berurutan:
2000
true
30
0.51
0
false
Nilai kembaliannya juga dinilai langsung dengan createLottieController(11, 20): setelah goToFrame(999), currentFrame harus 10; setelah goToFrame(-5), harus 0; getProgress() lalu 0; setelah play() lalu pause(), playing harus false; dan getDurationMs() harus 550. Hasil gabungannya 10|0|0|false|550.