Timeline ANIMATION

Composite Frame Animations

Play composite frame animations in a timeline.

CODE EXAMPLE

let R = 50, CENTER = Point2.toPoint([150, 150]), EL = $1('.a5m'),
setXY = (el: HTMLElement, p:Point2)=>{
    el.css({
        left: p.x + 'px',
        top: p.y + 'px'
    })
},
anim = new Timeline({
    targets: '.a5m'
})
.add({
    type: 'frame',
    frames: {
        src: '../js2d/1945.gif',
        w: 32,
        h: 32,
        items: {
            ox: 4,
            oy: 4,
            split: 1,
            axis: 'x',
            total: 8
        }
    },
    on: {
        updated: function(e, t, d) {
            let rad = - t / d * Radians.ONE_CYCLE + Math.PI,
                p = CENTER.clone().toward(R, rad);
            setXY(EL, p);
        }
    },
    loop: true,
    duration: 2000
})
.add({
    type: 'frame',
    targets: '.submarine',
    frames: {
        src: '../js2d/1945.gif',
        w: 32,
        h: 98,
        items: {
            ox: 532,
            oy: 103,
            split: 1,
            axis: '-x',
            total: 6
        }
    },
    duration: 3000,
    loop: true,
    direction: 'alternate'
}, 0)

$1('#demo').on('click', () => {
    anim.play()
})