多线程

SpriteJS Next 支持 OffscreenCanvas 和多线程,我们可以给 Layer 设置参数 {worker: URL} 来创建一个在 worker 中运行的 Layer。

  1. // 主线程
  2. const container = document.getElementById('stage');
  3. const scene = new spritejs.Scene({
  4. container,
  5. width: 1200,
  6. height: 600,
  7. });
  8. scene.layer('fglayer', {worker: './worker.js'});
  1. // worker.js
  2. importScripts('https://unpkg.com/spritejs@3/dist/spritejs.worker.js');
  3. const textureURL = 'https://p4.ssl.qhimg.com/t012170360e1552ce17.png';
  4. spritejs.layerCreated.then((layer) => {
  5. const {Sprite} = spritejs;
  6. const s = new Sprite();
  7. s.attr({
  8. anchor: 0.5,
  9. size: [200, 200],
  10. pos: [600, 300],
  11. bgcolor: 'red',
  12. texture: textureURL,
  13. });
  14. layer.append(s);
  15. s.addEventListener('click', (evt) => {
  16. console.log(evt);
  17. });
  18. });