ctor(options) {
    this._componentsById = {};

    // set spriteIdentifier
    let spriteIdentifier;
    let texture;
    if (options != null) {
      // set sprite identifier in case of array
      // this way when we get an identifier we'll get a random one
      if (typeof options === 'string' || _.isArray(options)) {
        this.setSpriteIdentifier(options);
      } else {
        texture = options instanceof cc.Texture2D ? options : options.texture;
        if (!texture) {
          spriteIdentifier = options.spriteIdentifier;
          if (spriteIdentifier) {
            this.setSpriteIdentifier(spriteIdentifier);
          }
        }
      }
    }
    spriteIdentifier = this.getSpriteIdentifier();

    // find spriteFrame
    const spriteFrame = UtilsEngine.getSpriteFrameFromIdentifier(spriteIdentifier);

    // do super ctor with spriteFrame and fallback to spriteIdentifier
    this._super(spriteFrame || spriteIdentifier || texture);

    // setup defaults
    this.setDefaultOptions();

    // apply options
    if (_.isObject(options)) {
      this.setOptions(options);
    }

    // update aliasing only if we're not anti aliasing
    // cocos defaults to anti aliasing all textures
    if (!this.antiAlias) {
      this._updateAliasing();
    }
  }
*************************************************************************
 BaseSprite
 var BaseSprite = cc.Sprite
 BaseSprite.create()
**************************************************************************