# anim-loop-engine
Painfully basic lib just to shortcut setting up requestAnimationFrame loops in experiments.

## Installing
```
npm install --save tdous/anim-loop-engine
```

## Usage
```
import { AnimLoopEngine } from 'anim-loop-engine';

const engine = new AnimLoopEngine();

const someTaskToRunEachFrame = () => { ... };
const someTaskToRunSecond = (ts) => {
  // Maybe so domething with the timestamp passed to each frame task
  ...
};
const yetAnotherFrameTask = () => { ... };

// Add single tasks... (optionally keep the returned task ID for later)
engine.addTask(someTaskToRunEachFrame);

// ...or multiple - they are called in added order - tasks IDs returned as array
const someTaskIds = engine.addTasks([someTaskToRunEachFrame, someTaskToRunSecond]);

// Start the loop
engine.start()

// Add another task while running
const anotherTaskId = engine.addTask(yetAnotherFrameTask);

// Delete a task - deleting 'someTaskToRunSecond' via the returned tasks ID
engine.deleteTask(someTaskIds[1]);
// ...so the engine is now calling 'someTaskToRunEachFrame' then 'yetAnotherFrameTask'

// Stop whenever you want
engine.stop();