showShine(duration, intensity) {
    if (!this._showingShine) {
      this._showingShine = true;

      this.whenRequiredResourcesReady().then((requestId) => {
        if (!this.getAreResourcesValid(requestId)) return; // load invalidated or resources changed

        if (duration == null) { duration = 0.5; }
        if (intensity == null) { intensity = 0.5; }
        if (this.shineNode == null) {
          this.shineNode = new FXCardShineSprite(this.cardBackgroundSpriteIdentifier);
          this.shineNode.setPosition(this.cardBackgroundSprite.getPosition());
          this._containerNodeFront.addChild(this.shineNode, this.cardBackgroundSprite.getLocalZOrder());
        } else if (this.shineNode.getTexture().url !== this.cardBackgroundSpriteIdentifier) {
          this.shineNode.setTexture(cc.textureCache.getTextureForKey(this.cardBackgroundSpriteIdentifier));
        }

        this.shineNode.setPhase(-1.0);
        this.shineNode.setIntensity(intensity);
        this.shineNode.setOpacity(255);
        this.shineNode.setVisible(true);
        const shineAction = cc.sequence(
          cc.actionTween(duration, 'phase', -1.0, 1.0).easing(cc.easeOut()),
          cc.hide(),
        );
        this.shineNode.runAction(shineAction);
      });
    }
  }
Shows a shine effect on the card.
@param {Number} [duration=0.5]
@param {Number} [intensity=0.5]