bidello is a simple class Mixin and event system.
npm install bidello
and then
import { component } from 'bidello';
class YourClass extends component() {
init() {
//...
}
}
You can extend your classes, and trigger methods by global events.
import bidello, { component } from 'bidello';
class YourClass extends component() {
onResize({ width, height }) {
}
onVisibility({ visible }) {
}
onRaf() {
}
};
// Anywhere else in your code...
bidello.trigger({ name: 'resize', fireAtStart: true }, {
width: window.innerWidth,
height: window.innerHeight,
});
bidello.trigger({ name: 'onVisibility' }, {
visible: false,
});
bidello.trigger({ name: 'raf' });
The
fireAtStart
flag, if true, will force theonResize
method to be called for any new classes created in the future (automatically passing the last known data)
You can also do stuff like:
import { Object3D } from 'three.js';
import { component } from 'bidello';
class YourClass extends component(Object3D) {
onResize({ width, height }) {
}
onVisibility({ visible }) {
}
onRaf() {
}
};
In this way YouClass
extends Object3D
plus bidello
methods
Look at antipasto for a real example.