docs: function Spine(url) {
      DisplayObjectContainer.call(this);
  
      this.spineData = Spine.animCache[url];
  
      if (!this.spineData) {
          throw new Error('Spine data must be preloaded using SpineLoader or AssetLoader: ' + url);
      }
  
      this.skeleton = new spine.Skeleton(this.spineData);
      this.skeleton.updateWorldTransform();
  
      this.stateData = new spine.AnimationStateData(this.spineData);
      this.state = new spine.AnimationState(this.stateData);
  
      this.slotContainers = [];
  
      for (var i = 0, n = this.skeleton.drawOrder.length; i < n; i++) {
          var slot = this.skeleton.drawOrder[i];
          var attachment = slot.attachment;
          var slotContainer = new DisplayObjectContainer();
          this.slotContainers.push(slotContainer);
          this.addChild(slotContainer);
          if (!(attachment instanceof spine.RegionAttachment)) {
              continue;
          }
          var spriteName = attachment.rendererObject.name;
          var sprite = this.createSprite(slot, attachment.rendererObject);
          slot.currentSprite = sprite;
          slot.currentSpriteName = spriteName;
          slotContainer.addChild(sprite);
      }
  }