window.__require = function e(t, n, r) {
  function s(o, u) {
    if (!n[o]) {
      if (!t[o]) {
        var b = o.split("/");
        b = b[b.length - 1];
        if (!t[b]) {
          var a = "function" == typeof __require && __require;
          if (!u && a) return a(b, !0);
          if (i) return i(b, !0);
          throw new Error("Cannot find module '" + o + "'");
        }
        o = b;
      }
      var f = n[o] = {
        exports: {}
      };
      t[o][0].call(f.exports, function(e) {
        var n = t[o][1][e];
        return s(n || e);
      }, f, f.exports, e, t, n, r);
    }
    return n[o].exports;
  }
  var i = "function" == typeof __require && __require;
  for (var o = 0; o < r.length; o++) s(r[o]);
  return s;
}({
  et_13: [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1e6c5bmzb5Cw7tGU+6pyb+T", "et_13");
    "use strict";
    var _util = require("./util");
    var _cc$Class;
    cc.Class((_cc$Class = {
      extends: cc.Component,
      properties: {
        baseWidth: {
          default: 1280,
          type: cc.Integer
        },
        baseHeight: {
          default: 720,
          type: cc.Integer
        }
      },
      onLoad: function onLoad() {
        cc.debug.setDisplayStats(false);
        this.initSceneData();
        this.initSize();
      },
      initSceneData: function initSceneData() {
        this._imageResList = [];
        this._audioResList = [];
        this._animaResList = [];
      },
      _designSize: null,
      _frameSize: null,
      _mapScaleMin: null,
      _mapScaleMax: null,
      _cocosScale: null,
      canvas: null,
      initSize: function initSize() {
        var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height;
        var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height;
        var f = screen_size >= design_size;
        cc.Canvas.instance.fitHeight = f;
        cc.Canvas.instance.fitWidth = !f;
        var frameSize = cc.view.getFrameSize();
        this._frameSize = frameSize;
        this._designSize = cc.view.getDesignResolutionSize();
        var sx = cc.winSize.width / frameSize.width;
        var sy = cc.winSize.height / frameSize.height;
        this._cocosScale = Math.min(sx, sy);
        sx = frameSize.width / this._designSize.width;
        sy = frameSize.height / this._designSize.height;
        this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
        this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
        this.canvas = cc.find("Canvas");
      },
      start: function start() {
        var _this = this;
        var getData = this.getData.bind(this);
        window && window.courseware && (getData = window.courseware.getData);
        getData(function(data) {
          console.log("data:", data);
          _this.data = data || _this.getDefaultData();
          _this.preloadItem();
        });
      },
      _imageResList: null,
      _audioResList: null,
      _animaResList: null,
      preloadItem: function preloadItem() {
        this.addPreloadImage();
        this.addPreloadAudio();
        this.preload();
      },
      getData: function getData(func) {
        func(this.getDefaultData());
      },
      getDefaultData: function getDefaultData() {
        var dataJson = '{"groupArr":[{"ques":"","optionArr":[{"type":"text","isRight":"1","text":"aaaaa","audio_url":"http://staging-teach.cdn.ireadabc.com/5285e1e88a26a08783757e9c43a8653f.mp3"},{"type":"text","isRight":"0","text":"bbbbb","audio_url":"http://staging-teach.cdn.ireadabc.com/440cf9d57752b30691d90ed565e8c924.mp3"},{"type":"pic","isRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/66878465ec50d162bd60fcdaa641933b.mp3","pic_url":"http://staging-teach.cdn.ireadabc.com/7709a0ddfde321cb70fc3099da32c35b.png"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/85cff126986f5cc11b05e95181da5869.mp3"},{"ques":"","optionArr":[{"type":"text","isRight":"1","text":"444","audio_url":"http://staging-teach.cdn.ireadabc.com/a5fa20e0c6024421b0d9a7007c303503.mp3"},{"type":"pic","isRight":"0","pic_url":"http://staging-teach.cdn.ireadabc.com/1c9a510039065355e8f2402227cf8ef0.png"},{"type":"text","isRight":"0","text":"!!!!!"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/a5fa20e0c6024421b0d9a7007c303503.mp3"}],"pic_url_2":"http://staging-teach.cdn.ireadabc.com/f6f4bbef497409fef3c8f1d375893829.png"}';
        var data1 = JSON.parse(dataJson);
        return data1;
      },
      preload: function preload() {
        var _this2 = this;
        var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);
        cc.assetManager.loadAny(preloadArr, null, null, function(err, data) {
          _this2.loadEnd();
          window && window["air"] && window["air"].hideAirClassLoading();
        });
      },
      addPreloadImage: function addPreloadImage() {
        var groupArr = this.data.groupArr;
        if (groupArr) for (var i = 0; i < groupArr.length; i++) {
          var optionArr = groupArr[i].optionArr;
          for (var j = 0; j < optionArr.length; j++) this._imageResList.push({
            url: optionArr[j].pic_url || ""
          });
        }
      },
      addPreloadAudio: function addPreloadAudio() {
        var groupArr = this.data.groupArr;
        if (groupArr) for (var i = 0; i < groupArr.length; i++) {
          var optionArr = groupArr[i].optionArr;
          for (var j = 0; j < optionArr.length; j++) this._audioResList.push({
            url: optionArr[j].audio_url || ""
          });
          this._audioResList.push({
            url: groupArr[i].audio_url || ""
          });
        }
      },
      addPreloadAnima: function addPreloadAnima() {},
      loadEnd: function loadEnd() {
        this.initView();
        this.initData();
      },
      initMusic: function initMusic() {
        cc.assetManager.loadRemote(this.data.bg_audio_url, function(err, clip) {
          cc.audioEngine.setMusicVolume(.3);
          var audioID = cc.audioEngine.playMusic(clip, true);
        });
      },
      initView: function initView() {
        this.initHole();
        this.initStar();
        this.initBtn();
        this.showSoundBtn();
      },
      penguinPool: null,
      groupIndex: null,
      initData: function initData() {
        this.penguinPool = [];
        this.groupIndex = 0;
        this.initCurGroup();
        this.initAudioEffect();
      },
      appearClip: null,
      starClip: null,
      rightClip: null,
      wrongClip: null,
      bigStarClip: null,
      btnClip: null,
      endClip: null,
      initAudioEffect: function initAudioEffect() {
        this.appearClip = cc.find("Canvas/res/audio/appear").getComponent(cc.AudioSource).clip;
        this.starClip = cc.find("Canvas/res/audio/star").getComponent(cc.AudioSource).clip;
        this.rightClip = cc.find("Canvas/res/audio/right").getComponent(cc.AudioSource).clip;
        this.wrongClip = cc.find("Canvas/res/audio/wrong").getComponent(cc.AudioSource).clip;
        this.bigStarClip = cc.find("Canvas/res/audio/big_star").getComponent(cc.AudioSource).clip;
        this.btnClip = cc.find("Canvas/res/audio/btn").getComponent(cc.AudioSource).clip;
        this.endClip = cc.find("Canvas/res/audio/end").getComponent(cc.AudioSource).clip;
      },
      curGroup: null,
      initCurGroup: function initCurGroup() {
        this.curGroup = JSON.parse(JSON.stringify(this.data.groupArr[this.groupIndex]));
      },
      holeArr: null,
      initHole: function initHole() {
        this.holeArr = [];
        var edge = 100 * this._mapScaleMin;
        var itemW = 260 * this._mapScaleMin;
        var disW = (this.canvas.width - 2 * edge - 4 * itemW) / 3;
        var baseX = -this.canvas.width / 2 + edge + itemW / 2;
        var disH = 200 * this._mapScaleMin;
        var baseY = -this.canvas.height / 2 + 260 * this._mapScaleMin;
        var j = 0;
        for (var i = 0; i < 8; i++) {
          var hole = this.getHole();
          this.canvas.addChild(hole);
          this.holeArr.push(hole);
          hole.x = baseX + i % 4 * (itemW + disW);
          hole.y = baseY - j * disH;
          3 == i && j++;
        }
      },
      bigStarArr: null,
      initStar: function initStar() {
        var gArr = this.data.groupArr;
        if (gArr.length <= 1) return;
        this.bigStarArr = [];
        var baseX = this.canvas.width / 2 - 50 * this._mapScaleMin;
        var baseY = this.canvas.height / 2 - 80 * this._mapScaleMin;
        var disH = 80 * this._mapScaleMin;
        for (var i = 0; i < gArr.length; i++) {
          var starBg = (0, _util.getSprNode)("star_bg");
          this.canvas.addChild(starBg, 2);
          starBg.x = baseX;
          starBg.y = baseY - i * disH;
          var starTop = (0, _util.getSprNode)("star");
          starBg.addChild(starTop);
          starTop.active = false;
          starBg.star = starTop;
          this.bigStarArr.push(starBg);
        }
      },
      startBtn: null,
      restartBtn: null,
      initBtn: function initBtn() {
        var _this3 = this;
        var btn = cc.find("Canvas/btn_start");
        btn.scale = this._mapScaleMin;
        btn.active = true;
        btn.zIndex = 50;
        btn.on(cc.Node.EventType.TOUCH_START, function() {
          console.log(" in click");
          cc.tween(btn).to(.05, {
            scale: .9 * _this3._mapScaleMin
          }).to(.05, {
            scale: 1 * _this3._mapScaleMin
          }).call(function() {
            btn.active = false;
            _this3.startBtnClicked();
            _this3.addSoundBtnListner();
          }).start();
        });
        this.startBtn = btn;
        var restartBtn = cc.find("Canvas/btn_restart");
        restartBtn.zIndex = 50;
        restartBtn.on(cc.Node.EventType.TOUCH_START, function() {
          console.log(" in click");
          cc.tween(restartBtn).to(.05, {
            scale: .9 * _this3._mapScaleMin
          }).to(.05, {
            scale: 1 * _this3._mapScaleMin
          }).call(function() {
            restartBtn.active = false;
            _this3.restartBtnClicked();
          }).start();
        });
        this.restartBtn = btn;
      },
      showSoundBtn: function showSoundBtn() {
        var btn = cc.find("Canvas/btn_laba");
        btn.scale = this._mapScaleMin;
      },
      startBtnClicked: function startBtnClicked() {
        var _this4 = this;
        cc.tween(this).delay(.3).call(function() {
          _this4.showPenguin();
        }).start();
        this.showQuestion();
        (0, _util.playAudio)(this.btnClip);
      },
      restartBtnClicked: function restartBtnClicked() {
        this.groupIndex = 0;
        this.initCurGroup();
        this.hideBigStar();
        this.startBtnClicked();
      },
      hideBigStar: function hideBigStar() {
        for (var i = 0; i < this.bigStarArr.length; i++) cc.tween(this.bigStarArr[i].star).to(.5, {
          scale: 0
        }, {
          easing: "cubicOut"
        }).start();
      },
      soundAnima: null,
      addSoundBtnListner: function addSoundBtnListner() {
        var _this5 = this;
        var btn = cc.find("Canvas/btn_laba");
        btn.addComponent(cc.Button);
        btn.on("click", function() {
          _this5.showQuestion();
          (0, _util.playAudio)(_this5.btnClip);
        });
      },
      showQuestion: function showQuestion() {
        var anim = cc.find("Canvas/btn_laba").getComponent(cc.Animation);
        anim.play();
        (0, _util.playAudioByUrl)(this.curGroup.audio_url, function() {
          anim.stop();
        });
      },
      getHole: function getHole() {
        var hole = new cc.Node();
        hole.scale = this._mapScaleMin;
        var holeBg = (0, _util.getSprNode)("hole_1");
        hole.addChild(holeBg, 1);
        var holeTop = (0, _util.getSprNode)("hole_2");
        hole.addChild(holeTop, 10);
        return hole;
      },
      showPenguin: function showPenguin() {
        this.showOnePenguin();
      },
      showOnePenguin: function showOnePenguin() {
        var _this6 = this;
        var hole = this.getFreeHole();
        if (hole) {
          var penguin = this.getPenguin();
          var optionData = this.getOptionData();
          this.addPenguin(hole, penguin, optionData);
        } else cc.tween(this).delay(.3).call(function() {
          _this6.showOnePenguin();
        }).start();
      },
      getOptionData: function getOptionData() {
        var arr = (0, _util.randomSortByArr)(this.curGroup.optionArr);
        return arr[0];
      },
      getPenguin: function getPenguin() {
        if (this.penguinPool.length > 0) return this.penguinPool.shift();
        var node = new cc.Node();
        var id = (0, _util.RandomInt)(1, 2);
        var penguin = (0, _util.getSprNode)("penguin_" + id);
        node.penguin = penguin;
        this.addPenguinWrong(node, id);
        this.addTextPanel(node);
        this.addPicPanel(node);
        this.addClickNode(node);
        node.textPanel.y = penguin.height / 2 + node.textPanel.height / 2 - 25;
        node.picPanel.y = penguin.height / 2 + node.picPanel.height / 2 - 25;
        node.addChild(node.picPanel);
        node.addChild(node.textPanel);
        node.addChild(penguin);
        node.addChild(node.wrong);
        return node;
      },
      addClickNode: function addClickNode(node) {
        var _this7 = this;
        var rectNode = new cc.Node();
        rectNode.addComponent(cc.Button);
        rectNode.width = 270;
        rectNode.height = 180;
        rectNode.anchorX = 0;
        rectNode.anchorY = 0;
        rectNode.on("click", function() {
          _this7.checkPenguinIsRight(node);
        });
        node.addChild(rectNode, 10);
        rectNode.x = -130;
        rectNode.y = 40;
        rectNode.opacity = 50;
      },
      checkPenguinIsRight: function checkPenguinIsRight(node) {
        if (!node.data) return;
        if (this.isRightDuration) return;
        if (node.data.end) return;
        if ("1" == node.data.isRight) {
          this.showPenguinRight(node);
          node.data.end = true;
        } else this.showPenguinWrong(node);
      },
      isRightDuration: null,
      showPenguinRight: function showPenguinRight(node) {
        this.isRightDuration = true;
        this.showAnimaStar(node);
        this.stopPenguin(node);
        this.showRightSound(node);
      },
      showPenguinWrong: function showPenguinWrong(node) {
        node.penguin.active = false;
        node.wrong.active = true;
        (0, _util.playAudio)(this.wrongClip);
      },
      showAnimaStar: function showAnimaStar(node) {
        var resDragonBone = cc.find("Canvas/res/anima/star");
        var d = cc.instantiate(resDragonBone);
        node.addChild(d, 20);
        d.x = 0;
        d.y = node.penguin.height / 2;
      },
      checkNextStar: function checkNextStar(node) {
        var _this8 = this;
        var data = node.data;
        console.log("this.curGroup: ", this.curGroup);
        var optionArr = this.curGroup.optionArr;
        var index = optionArr.indexOf(data);
        -1 != index && optionArr.splice(index, 1);
        var isEnd = this.checkIsGroupEnd();
        isEnd ? this.showBigStar() : cc.tween(this).delay(1).call(function() {
          _this8.showOnePenguin();
        }).start();
        this.hideCurPenguin(node);
        this.isRightDuration = false;
      },
      hideCurPenguin: function hideCurPenguin(penguin) {
        var _this9 = this;
        var _penguin$hideData = penguin.hideData, downY = _penguin$hideData.downY, moveTime = _penguin$hideData.moveTime, panel = _penguin$hideData.panel, hole = _penguin$hideData.hole;
        cc.tween(penguin).call(function() {
          hidePanel();
        }).to(moveTime, {
          y: downY
        }, {
          easing: "quadInOut"
        }).call(function() {
          penguin.active = false;
          penguin.penguin.active = true;
          penguin.wrong.active = false;
          hole.penguin = null;
          _this9.penguinPool.push(penguin);
          penguin.moveTween = null;
        }).start();
        var hidePanel = function hidePanel() {
          cc.tween(panel).to(.3 * moveTime, {
            opacity: 0
          }).call(function() {
            panel.active = false;
          }).start();
        };
      },
      showBigStar: function showBigStar() {
        var _this10 = this;
        var bigStarBg = this.bigStarArr[this.groupIndex];
        var star = bigStarBg.star;
        star.active = true;
        star.opacity = 0;
        star.scale = 3 * this._mapScaleMin;
        star.rotation = 0;
        var time = 1;
        cc.tween(star).to(time, {
          scale: 1,
          opacity: 255,
          rotation: 360
        }, {
          easing: "quadOut"
        }).call(function() {
          _this10.checkGameEnd();
        }).start();
        (0, _util.playAudio)(this.bigStarClip);
      },
      checkGameEnd: function checkGameEnd() {
        this.groupIndex++;
        if (!this.data.groupArr[this.groupIndex]) {
          this.gameEnd();
          return;
        }
        this.initCurGroup();
        this.showOnePenguin();
        this.showQuestion();
      },
      gameEnd: function gameEnd() {
        var _this11 = this;
        this.playEndEffect();
        cc.tween(this).delay(.2).call(function() {
          _this11.showRestartBtn();
        }).start();
      },
      showRestartBtn: function showRestartBtn() {
        var restartBtn = cc.find("Canvas/btn_restart");
        restartBtn.zIndex = 20;
        restartBtn.active = true;
        restartBtn.scale = 0;
        cc.tween(restartBtn).to(1, {
          scale: this._mapScaleMin
        }, {
          easing: "elasticOut"
        }).start();
      },
      playEndEffect: function playEndEffect() {
        (0, _util.playAudio)(this.endClip);
        var camera = cc.find("Canvas/Main Camera");
        camera.zIndex = 100;
        (0, _util.showTrebleFirework)(camera, cc.find("RibbonNodeBase").children);
      },
      checkIsGroupEnd: function checkIsGroupEnd() {
        var optionArr = this.curGroup.optionArr;
        for (var i = 0; i < optionArr.length; i++) if ("1" == optionArr[i].isRight) return false;
        return true;
      },
      stopPenguin: function stopPenguin(node) {
        if (node.moveTween) {
          console.log("node.moveTween: ", node.moveTween);
          node.moveTween.stop();
        }
      },
      showRightSound: function showRightSound(node) {
        var _this12 = this;
        (0, _util.playAudio)(this.rightClip, function() {
          if (!node.data.audio_url) {
            _this12.checkNextStar(node);
            return;
          }
          (0, _util.playAudioByUrl)(node.data.audio_url, function() {
            _this12.checkNextStar(node);
          });
        });
      },
      addPenguinWrong: function addPenguinWrong(node, id) {
        var penguinWrong = (0, _util.getSprNode)("penguin_" + id + "_wrong");
        penguinWrong.active = false;
        node.wrong = penguinWrong;
      },
      addTextPanel: function addTextPanel(node) {
        var _this13 = this;
        var textPanel = (0, _util.getSprNode)("panel_text");
        textPanel.active = false;
        node.textPanel = textPanel;
        var labelNode = new cc.Node();
        var label = labelNode.addComponent(cc.Label);
        textPanel.addChild(labelNode, 5);
        label.fontSize = 54;
        label.font = cc.find("Canvas/res/font/Berlin Sans FB").getComponent(cc.Label).font;
        var color = new cc.Color();
        cc.Color.fromHEX(color, "c1431d");
        labelNode.color = color;
        labelNode.y = 5;
        textPanel.label = label;
        textPanel.addComponent(cc.Button);
        textPanel.on("click", function() {
          _this13.checkPenguinIsRight(node);
        });
      },
      addPicPanel: function addPicPanel(node) {
        var _this14 = this;
        var picPanel = (0, _util.getSprNode)("panel_pic");
        picPanel.active = false;
        node.picPanel = picPanel;
        var picNode = new cc.Node();
        var spr = picNode.addComponent(cc.Sprite);
        picPanel.addChild(picNode);
        picNode.y = 0;
        picPanel.spr = spr;
        picPanel.addComponent(cc.Button);
        picPanel.on("click", function() {
          _this14.checkPenguinIsRight(node);
        });
      },
      getFreeHole: function getFreeHole() {
        var holeArr = (0, _util.randomSortByArr)(this.holeArr);
        for (var i = 0; i < holeArr.length; i++) if (!holeArr[i].penguin) return holeArr[i];
        return null;
      },
      addPenguin: function addPenguin(hole, penguin, optionData) {
        var _this15 = this;
        penguin.active = true;
        penguin.parent = hole;
        penguin.zIndex = 5;
        hole.penguin = penguin;
        var downY = -180;
        penguin.y = downY;
        var panel;
        panel = "text" == optionData.type ? penguin.textPanel : penguin.picPanel;
        this.setPanelData(panel, optionData);
        var moveTime = .2 + .1 * Math.random();
        var standTime = 1 + 2 * Math.random();
        penguin.hideData = {
          downY: downY,
          moveTime: moveTime,
          panel: panel,
          hole: hole
        };
        penguin.moveTween = cc.tween(penguin).to(moveTime, {
          y: 0
        }, {
          easing: "quadInOut"
        }).delay(standTime).call(function() {
          hidePanel();
        }).to(moveTime, {
          y: downY
        }, {
          easing: "quadInOut"
        }).call(function() {
          penguin.active = false;
          penguin.penguin.active = true;
          penguin.wrong.active = false;
          hole.penguin = null;
          _this15.penguinPool.push(penguin);
          penguin.moveTween = null;
        }).start();
        var nextTime = .3 + 2 * Math.random();
        cc.tween(this).delay(nextTime).call(function() {
          _this15.isRightDuration || _this15.showOnePenguin();
        }).start();
        var showPanel = function showPanel() {
          panel.active = true;
          panel.opacity = 0;
          cc.tween(panel).to(.3 * moveTime, {
            opacity: 255
          }).start();
        };
        var hidePanel = function hidePanel() {
          cc.tween(panel).to(.3 * moveTime, {
            opacity: 0
          }).call(function() {
            panel.active = false;
          }).start();
        };
        showPanel();
        (0, _util.playAudio)(this.appearClip);
      },
      setPanelData: function setPanelData(panel, optionData) {
        panel.data = optionData;
        panel.parent.data = optionData;
        "text" == optionData.type ? this.setTextPanelData(panel, optionData) : this.setPicPanelData(panel, optionData);
      },
      setTextPanelData: function setTextPanelData(panel, optionData) {
        var panelW = 255;
        panel.label.string = optionData.text;
        panel.label["_forceUpdateRenderData"](true);
        panel.label.node.width > panelW ? panel.label.node.scale = panelW / panel.label.node.width : panel.label.node.scale = 1;
      },
      setPicPanelData: function setPicPanelData(panel, optionData) {
        cc.loader.load({
          url: optionData.pic_url
        }, function(err, img) {
          var spriteFrame = new cc.SpriteFrame(img);
          panel.spr.spriteFrame = spriteFrame;
          var panelW = 215;
          var panelH = 135;
          var sx = panelW / img.width;
          var sy = panelH / img.height;
          var s = Math.min(sx, sy);
          panel.spr.node.scale = s;
        });
      }
    }, _cc$Class["_cocosScale"] = null, _cc$Class.initBg = function initBg() {
      var frameSize = cc.view.getFrameSize();
      var sx = cc.winSize.width / frameSize.width;
      var sy = cc.winSize.height / frameSize.height;
      var s = Math.min(sx, sy);
      this._cocosScale = s;
      var bgNode = cc.find("Canvas/bg");
      sx = frameSize.width / bgNode.width;
      sy = frameSize.height / bgNode.height;
      bgNode.scale = Math.max(sx, sy) * s;
      bgNode.anchorX = 1;
      bgNode.anchorY = 0;
      bgNode.x = frameSize.width / 2 * s;
      bgNode.y = -frameSize.height / 2 * s;
      var bg = cc.find("Canvas/bg");
      var rectNode = new cc.Node();
      rectNode.x = -bg.x;
      rectNode.y = -bg.y;
      rectNode.scaleX = bg.scaleX;
      rectNode.scaleY = bg.scaleY;
      bg.addChild(rectNode);
      var ctx = rectNode.addComponent(cc.Graphics);
      ctx.fillColor = this.data.bgColor || "#f9bd03";
      ctx.fillRect(-bg.width / 2, -bg.height / 2, bg.width, bg.height);
      ctx.fill();
    }, _cc$Class.initHotZone = function initHotZone() {
      this.initHotZoneBg();
    }, _cc$Class.hotZoneBg = null, _cc$Class.initHotZoneBg = function initHotZoneBg() {
      var _this16 = this;
      this.hotZoneBg = new cc.Node();
      this.hotZoneBg.name = "hotZoneBg";
      this.hotZoneBg.parent = cc.find("Canvas");
      var titleH = 107 * this._mapScaleMin + 22;
      if (!this.data.bgItem) return;
      cc.loader.load({
        url: this.data.bgItem.url
      }, function(err, img) {
        _this16.hotZoneBg.width = img.width;
        _this16.hotZoneBg.height = img.height;
        var sprNode = new cc.Node();
        sprNode.name = "bgItemSpr";
        var sf = new cc.SpriteFrame(img);
        var spr = sprNode.addComponent(cc.Sprite);
        spr.spriteFrame = sf;
        sprNode.width = _this16.hotZoneBg.width;
        sprNode.height = _this16.hotZoneBg.height;
        sprNode.parent = _this16.hotZoneBg;
        window["bg"] = sprNode;
        var sx = _this16.canvas.width / _this16.hotZoneBg.width;
        var sy = (_this16.canvas.height - titleH) / _this16.hotZoneBg.height;
        var s = Math.min(sx, sy);
        _this16.hotZoneBg.scale = s;
        _this16.hotZoneBg.y = 0 - titleH / 2;
        _this16.initHotZoneItem();
      });
    }, _cc$Class.initHotZoneItem = function initHotZoneItem() {
      var _this17 = this;
      this.data.hotZoneItemArr.forEach(function(item) {
        "0" == item.gIdx ? _this17.setOneAnimaSmall(item) : "1" == item.gIdx ? _this17.setOnePic(item) : "2" == item.gIdx ? _this17.setOneRect(item) : "3" == item.gIdx && _this17.setOneAction(item);
      });
    }, _cc$Class.addMask = function addMask(node) {
      var mask = node.addComponent(cc.Mask);
      mask.type = cc.Mask.Type.RECT;
    }, _cc$Class.setOneAction = function setOneAction(data) {
      var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
      var rectNode = new cc.Node();
      rectNode.name = "rect" + data.index;
      this.hotZoneBg.addChild(rectNode);
      var ctx = rectNode.addComponent(cc.Graphics);
      ctx.lineWidth = 4;
      ctx.strokeColor = cc.Color.BLACK;
      ctx.fillColor = cc.Color.WHITE.setA(100);
      var scale = rate / this.hotZoneBg.scaleY;
      rectNode.width = data.rect.width * scale;
      rectNode.height = data.rect.height * scale;
      rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
      rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
      var x = rectNode.x, y = rectNode.y, width = rectNode.width, height = rectNode.height;
      rectNode.anchorX = rectNode.anchorY = 0;
      this.data.bgItem.isShowDebugLine && ctx.rect(0, 0, rectNode.width, rectNode.height);
      ctx.stroke();
      ctx.fill();
      var actionData = data["actionData_" + data.gIdx];
      if (actionData && "text" == actionData.type) {
        var label = this.setOneActionText(rectNode, actionData);
        label.node.scale = scale * data.fontScale;
        label["_forceUpdateRenderData"](true);
      }
    }, _cc$Class.setOneActionText = function setOneActionText(rectNode, actionData) {
      var labelNode = new cc.Node();
      labelNode.parent = rectNode;
      var label = labelNode.addComponent(cc.Label);
      label.font = cc.find("Canvas/res/font/aharoni").getComponent(cc.Label).font;
      label.string = actionData.text;
      labelNode.color = cc.Color.BLACK;
      var opArr = actionData.changeOption;
      var tweenArr = [];
      for (var i = 0; i < opArr.length; i++) {
        var opData = opArr[i];
        console.log("opArr[0]", opArr[i]);
        if ("fontColor" == opData[0]) {
          var color = new cc.Color();
          cc.Color.fromHEX(color, opData[1]);
          labelNode.color = color;
        } else if ("opacity" == opData[0]) {
          labelNode.opacity = Number(opData[1] / 100 * 255) + .1;
          tweenArr.push({
            item: labelNode,
            option: '{"' + opData[0] + '" : ' + opData[2] / 100 * 255 + "}",
            optionName: opData[0]
          });
        } else {
          label[opData[0]] = opData[1];
          tweenArr.push({
            item: label,
            option: '{"' + opData[0] + '" : ' + opData[2] + "}",
            optionName: opData[0]
          });
        }
      }
      actionData.audio_url && cc.assetManager.loadRemote(actionData.audio_url, function(err, audioClip) {
        labelNode.audioClip = audioClip;
      });
      label.lineHeight = label.fontSize;
      labelNode.y += rectNode.height / 2;
      labelNode.x += rectNode.width / 2;
      rectNode.addComponent(cc.Button);
      rectNode.on("click", function() {
        if (labelNode.audioClip) {
          cc.audioEngine.stopAllEffects();
          cc.audioEngine.playEffect(labelNode.audioClip, false, .8);
        }
        labelNode.isClicked;
        labelNode.isClicked = true;
        for (var _i = 0; _i < tweenArr.length; _i++) {
          var tweenData = tweenArr[_i];
          if ("opacity" == tweenData.optionName) {
            console.log("~~~ ", tweenData.item[tweenData.optionName]);
            cc.tween(tweenData.item).to(actionData.changeTime, JSON.parse(tweenData.option)).start();
          }
        }
      });
      return label;
    }, _cc$Class.setOneAnimaSmall = function setOneAnimaSmall(data) {
      var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
      var rectNode = new cc.Node();
      rectNode.name = "rect" + data.index;
      this.hotZoneBg.addChild(rectNode);
      var ctx = rectNode.addComponent(cc.Graphics);
      ctx.lineWidth = 4;
      ctx.strokeColor = cc.Color.BLACK;
      ctx.fillColor = cc.Color.WHITE.setA(100);
      var scale = rate / this.hotZoneBg.scaleY;
      rectNode.width = data.rect.width * scale;
      rectNode.height = data.rect.height * scale;
      rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
      rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
      rectNode.anchorX = rectNode.anchorY = 0;
      this.data.bgItem.isShowDebugLine && ctx.rect(0, 0, rectNode.width, rectNode.height);
      ctx.stroke();
      ctx.fill();
      var animaNode = new cc.Node();
      animaNode.name = "anima_" + data.index;
      this.hotZoneBg.addChild(animaNode);
      data.audio_url && cc.assetManager.loadRemote(data.audio_url, function(err, audioClip) {
        animaNode.audioClip = audioClip;
      });
      var dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
      if (!data.texPngData) return;
      var image = data.texPngData.url;
      var ske = data.skeJsonData.url;
      var atlas = data.texJsonData.url;
      cc.loader.load(image, function(error, texture) {
        cc.loader.load({
          url: atlas,
          type: "txt"
        }, function(error, atlasJson) {
          cc.loader.load({
            url: ske,
            type: "txt"
          }, function(error, dragonBonesJson) {
            var atlas = new dragonBones.DragonBonesAtlasAsset();
            atlas.atlasJson = atlasJson;
            atlas.texture = texture;
            var asset = new dragonBones.DragonBonesAsset();
            asset.dragonBonesJson = dragonBonesJson;
            dragonDisplay.dragonAtlasAsset = atlas;
            dragonDisplay.dragonAsset = asset;
            var json = JSON.parse(asset.dragonBonesJson);
            var armatures = json["armature"];
            var armatureNames = [];
            for (var i = 0; i < armatures.length; i++) armatureNames.push(armatures[i].name);
            if (armatureNames.length > 0) {
              var defaultArmatureName = armatureNames[0];
              dragonDisplay.armatureName = defaultArmatureName;
              var defaultArmature = armatures[0];
              var animations = defaultArmature.animation;
              var animationNames = [];
              for (var _i2 = 0; _i2 < animations.length; _i2++) animationNames.push(animations[_i2].name);
              rectNode.addComponent(cc.Button);
              rectNode.on("click", function() {
                rectNode.isClicked;
                rectNode.isClicked = true;
                console.log("clicked");
                if (animaNode.audioClip) {
                  cc.audioEngine.stopAllEffects();
                  cc.director.emit("STOP_ALL_AUDIO");
                  cc.audioEngine.playEffect(animaNode.audioClip, false, .8);
                }
                animationNames.length > 0 && dragonDisplay.playAnimation(animationNames[0], 1);
              });
            }
            animaNode.x = rectNode.x + rectNode.width / 2;
            animaNode.y = rectNode.y + rectNode.height / 2;
            var sx = rectNode.width / animaNode.width;
            var sy = rectNode.height / animaNode.height;
            var scale = Math.min(sx, sy);
            animaNode.scale = scale;
          });
        });
      });
    }, _cc$Class.setOnePic = function setOnePic(data) {
      var _this18 = this;
      var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
      var picNode = new cc.Node();
      picNode.name = "pic" + data.index;
      picNode.data = data;
      this.hotZoneBg.addChild(picNode);
      cc.loader.load({
        url: data.pic_url
      }, function(err, img) {
        var spr = picNode.addComponent(cc.Sprite);
        spr.spriteFrame = new cc.SpriteFrame(img);
        var scale = rate / _this18.hotZoneBg.scaleY;
        picNode.width = data.rect.width * scale;
        picNode.height = data.rect.height * scale;
        picNode.x = -_this18.hotZoneBg.width / 2 + data.rect.x * scale;
        picNode.y = _this18.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
        picNode.anchorX = picNode.anchorY = 0;
        data.audio_url && _this18.addPicAudio(picNode);
      });
    }, _cc$Class.setOneRect = function setOneRect(data) {
      var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
      var rectNode = new cc.Node();
      rectNode.name = "rect" + data.index;
      this.hotZoneBg.addChild(rectNode);
      var ctx = rectNode.addComponent(cc.Graphics);
      ctx.lineWidth = 4;
      ctx.strokeColor = cc.Color.BLACK;
      ctx.fillColor = cc.Color.WHITE.setA(100);
      var scale = rate / this.hotZoneBg.scaleY;
      rectNode.width = data.rect.width * scale;
      rectNode.height = data.rect.height * scale;
      rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
      rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
      rectNode.anchorX = rectNode.anchorY = 0;
      this.data.bgItem.isShowDebugLine && ctx.rect(0, 0, rectNode.width, rectNode.height);
      ctx.stroke();
      ctx.fill();
      data.audio_url && cc.assetManager.loadRemote(data.audio_url, function(err, audioClip) {
        rectNode.audioClip = audioClip;
      });
      rectNode.addComponent(cc.Button);
      rectNode.on("click", function() {
        rectNode.isClicked;
        rectNode.isClicked = true;
        console.log("clicked");
        if (rectNode.audioClip) {
          cc.audioEngine.stopAllEffects();
          cc.audioEngine.playEffect(rectNode.audioClip, false, .8);
        }
      });
    }, _cc$Class.addPicAudio = function addPicAudio(picNode) {
      var data = picNode.data;
      cc.assetManager.loadRemote(data.audio_url, function(err, audioClip) {
        picNode.audioClip = audioClip;
      });
      picNode.addComponent(cc.Button);
      picNode.on("click", function() {
        if (picNode.audioClip) {
          cc.audioEngine.stopAllEffects();
          cc.audioEngine.playEffect(picNode.audioClip, false, .8);
        }
      });
    }, _cc$Class));
    cc._RF.pop();
  }, {
    "./util": "util"
  } ],
  util: [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "25ccfBBvfNLaoaDwk5MOf7U", "util");
    "use strict";
    exports.__esModule = true;
    exports.getPosByAngle = getPosByAngle;
    exports.getAngleByPos = getAngleByPos;
    exports.exchangeNodePos = exchangeNodePos;
    exports.RandomInt = RandomInt;
    exports.randomSortByArr = randomSortByArr;
    exports.setSprNodeMaxLen = setSprNodeMaxLen;
    exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl;
    exports.getSprNode = getSprNode;
    exports.getSprNodeByUrl = getSprNodeByUrl;
    exports.playAudio = playAudio;
    exports.playAudioByUrl = playAudioByUrl;
    exports.asyncDelay = asyncDelay;
    exports.showFireworks = showFireworks;
    exports.asyncTweenTo = asyncTweenTo;
    exports.asyncTweenBy = asyncTweenBy;
    exports.showTrebleFirework = showTrebleFirework;
    exports.FireworkSettings = void 0;
    function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
      try {
        var info = gen[key](arg);
        var value = info.value;
      } catch (error) {
        reject(error);
        return;
      }
      info.done ? resolve(value) : Promise.resolve(value).then(_next, _throw);
    }
    function _asyncToGenerator(fn) {
      return function() {
        var self = this, args = arguments;
        return new Promise(function(resolve, reject) {
          var gen = fn.apply(self, args);
          function _next(value) {
            asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
          }
          function _throw(err) {
            asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
          }
          _next(void 0);
        });
      };
    }
    function getPosByAngle(angle, len) {
      var radian = angle * Math.PI / 180;
      var x = Math.sin(radian) * len;
      var y = Math.cos(radian) * len;
      return {
        x: x,
        y: y
      };
    }
    function getAngleByPos(px, py, mx, my) {
      var x = Math.abs(px - mx);
      var y = Math.abs(py - my);
      var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
      var cos = y / z;
      var radina = Math.acos(cos);
      var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100;
      mx > px && my > py && (angle = 180 - angle);
      mx === px && my > py && (angle = 180);
      mx > px && my === py && (angle = 90);
      mx < px && my > py && (angle = 180 + angle);
      mx < px && my === py && (angle = 270);
      mx < px && my < py && (angle = 360 - angle);
      return angle;
    }
    function exchangeNodePos(baseNode, targetNode) {
      return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
    }
    function RandomInt(a, b) {
      void 0 === b && (b = 0);
      var max = Math.max(a, b);
      var min = Math.min(a, b);
      return Math.floor(Math.random() * (max - min) + min);
    }
    function randomSortByArr(arr) {
      var newArr = [];
      var tmpArr = arr.concat();
      while (tmpArr.length > 0) {
        var randomIndex = Math.floor(tmpArr.length * Math.random());
        newArr.push(tmpArr[randomIndex]);
        tmpArr.splice(randomIndex, 1);
      }
      return newArr;
    }
    function setSprNodeMaxLen(sprNode, maxW, maxH) {
      var sx = maxW / sprNode.width;
      var sy = maxH / sprNode.height;
      var s = Math.min(sx, sy);
      sprNode.scale = Math.round(1e3 * s) / 1e3;
    }
    function getSpriteFrimeByUrl(url, cb) {
      cc.loader.load({
        url: url
      }, function(err, img) {
        var spriteFrame = new cc.SpriteFrame(img);
        cb && cb(spriteFrame);
      });
    }
    function getSprNode(resName) {
      var sf = cc.find("Canvas/res/img/" + resName).getComponent(cc.Sprite).spriteFrame;
      var node = new cc.Node();
      node.addComponent(cc.Sprite).spriteFrame = sf;
      return node;
    }
    function getSprNodeByUrl(url, cb) {
      var node = new cc.Node();
      var spr = node.addComponent(cc.Sprite);
      getSpriteFrimeByUrl(url, function(sf) {
        spr.spriteFrame = sf;
        cb && cb(spr);
      });
    }
    function playAudio(audioClip, cb) {
      void 0 === cb && (cb = null);
      if (audioClip) {
        var audioId = cc.audioEngine.playEffect(audioClip, false, .8);
        cb && cc.audioEngine.setFinishCallback(audioId, function() {
          cb();
        });
      }
    }
    function playAudioByUrl(audio_url, cb) {
      void 0 === cb && (cb = null);
      audio_url && cc.assetManager.loadRemote(audio_url, function(err, audioClip) {
        playAudio(audioClip, cb);
      });
    }
    function asyncDelay(_x) {
      return _asyncDelay.apply(this, arguments);
    }
    function _asyncDelay() {
      _asyncDelay = _asyncToGenerator(regeneratorRuntime.mark(function _callee(time) {
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) switch (_context.prev = _context.next) {
           case 0:
            return _context.abrupt("return", new Promise(function(resolve, reject) {
              try {
                setTimeout(function() {
                  resolve();
                }, 1e3 * time);
              } catch (e) {
                reject(e);
              }
            }));

           case 1:
           case "end":
            return _context.stop();
          }
        }, _callee);
      }));
      return _asyncDelay.apply(this, arguments);
    }
    var FireworkSettings = function() {
      function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) {
        void 0 === pos && (pos = cc.v2(0, 0));
        void 0 === side && (side = cc.v2(0, 100));
        void 0 === range && (range = 50);
        void 0 === number && (number = 100);
        void 0 === scalseRange && (scalseRange = 0);
        this.baseNode = void 0;
        this.nodeList = void 0;
        this.pos = void 0;
        this.side = void 0;
        this.range = void 0;
        this.number = void 0;
        this.scalseRange = void 0;
        this.baseNode = baseNode;
        this.nodeList = nodeList;
        this.pos = pos;
        this.side = side;
        this.range = range;
        this.number = number;
        this.scalseRange = scalseRange;
      }
      FireworkSettings.copy = function copy(firework) {
        return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number);
      };
      return FireworkSettings;
    }();
    exports.FireworkSettings = FireworkSettings;
    function showFireworks(_x2) {
      return _showFireworks.apply(this, arguments);
    }
    function _showFireworks() {
      _showFireworks = _asyncToGenerator(regeneratorRuntime.mark(function _callee3(fireworkSettings) {
        var baseNode, nodeList, pos, side, range, number, scalseRange;
        return regeneratorRuntime.wrap(function _callee3$(_context3) {
          while (1) switch (_context3.prev = _context3.next) {
           case 0:
            baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, 
            side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, 
            scalseRange = fireworkSettings.scalseRange;
            new Array(number).fill(" ").forEach(function() {
              var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(_, i) {
                var rabbonNode, node, rate, angle;
                return regeneratorRuntime.wrap(function _callee2$(_context2) {
                  while (1) switch (_context2.prev = _context2.next) {
                   case 0:
                    rabbonNode = new cc.Node();
                    rabbonNode.parent = baseNode;
                    rabbonNode.x = pos.x;
                    rabbonNode.y = pos.y;
                    rabbonNode.angle = 60 * Math.random() - 30;
                    node = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
                    node.parent = rabbonNode;
                    node.active = true;
                    node.x = 0;
                    node.y = 0;
                    node.angle = 0;
                    node.scale = (Math.random() - .5) * scalseRange + 1;
                    rate = Math.random();
                    angle = Math.PI * (2 * Math.random() - 1);
                    _context2.next = 16;
                    return asyncTweenBy(rabbonNode, .3, {
                      x: side.x * rate + Math.cos(angle) * range * rate,
                      y: side.y * rate + Math.sin(angle) * range * rate
                    }, {
                      easing: "quadIn"
                    });

                   case 16:
                    cc.tween(rabbonNode).by(8, {
                      y: -2e3
                    }).start();
                    cc.tween(rabbonNode).to(5, {
                      scale: (Math.random() - .5) * scalseRange + 1
                    }).start();
                    rabbonFall(rabbonNode);
                    _context2.next = 21;
                    return asyncDelay(Math.random());

                   case 21:
                    cc.tween(node).by(.15, {
                      x: -10,
                      angle: -10
                    }).by(.3, {
                      x: 20,
                      angle: 20
                    }).by(.15, {
                      x: -10,
                      angle: -10
                    }).union().repeatForever().start();
                    cc.tween(rabbonNode).delay(5).to(.3, {
                      opacity: 0
                    }).call(function() {
                      node.stopAllActions();
                      node.active = false;
                      node.parent = null;
                      node = null;
                    }).start();

                   case 23:
                   case "end":
                    return _context2.stop();
                  }
                }, _callee2);
              }));
              return function(_x12, _x13) {
                return _ref.apply(this, arguments);
              };
            }());

           case 2:
           case "end":
            return _context3.stop();
          }
        }, _callee3);
      }));
      return _showFireworks.apply(this, arguments);
    }
    function rabbonFall(_x3) {
      return _rabbonFall.apply(this, arguments);
    }
    function _rabbonFall() {
      _rabbonFall = _asyncToGenerator(regeneratorRuntime.mark(function _callee4(node) {
        var time, offsetX;
        return regeneratorRuntime.wrap(function _callee4$(_context4) {
          while (1) switch (_context4.prev = _context4.next) {
           case 0:
            time = 1 + Math.random();
            offsetX = RandomInt(-200, 200) * time;
            _context4.next = 4;
            return asyncTweenBy(node, time, {
              x: offsetX,
              angle: 60 * offsetX / 200
            });

           case 4:
            rabbonFall(node);

           case 5:
           case "end":
            return _context4.stop();
          }
        }, _callee4);
      }));
      return _rabbonFall.apply(this, arguments);
    }
    function asyncTweenTo(_x4, _x5, _x6, _x7) {
      return _asyncTweenTo.apply(this, arguments);
    }
    function _asyncTweenTo() {
      _asyncTweenTo = _asyncToGenerator(regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) {
        return regeneratorRuntime.wrap(function _callee5$(_context5) {
          while (1) switch (_context5.prev = _context5.next) {
           case 0:
            void 0 === ease && (ease = void 0);
            return _context5.abrupt("return", new Promise(function(resolve, reject) {
              try {
                cc.tween(node).to(duration, obj, ease).call(function() {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));

           case 2:
           case "end":
            return _context5.stop();
          }
        }, _callee5);
      }));
      return _asyncTweenTo.apply(this, arguments);
    }
    function asyncTweenBy(_x8, _x9, _x10, _x11) {
      return _asyncTweenBy.apply(this, arguments);
    }
    function _asyncTweenBy() {
      _asyncTweenBy = _asyncToGenerator(regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) {
        return regeneratorRuntime.wrap(function _callee6$(_context6) {
          while (1) switch (_context6.prev = _context6.next) {
           case 0:
            void 0 === ease && (ease = void 0);
            return _context6.abrupt("return", new Promise(function(resolve, reject) {
              try {
                cc.tween(node).by(duration, obj, ease).call(function() {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));

           case 2:
           case "end":
            return _context6.stop();
          }
        }, _callee6);
      }));
      return _asyncTweenBy.apply(this, arguments);
    }
    function showTrebleFirework(baseNode, rabbonList) {
      var middle = new FireworkSettings(baseNode, rabbonList);
      middle.pos = cc.v2(0, -400);
      middle.side = cc.v2(0, 1e3);
      middle.range = 200;
      middle.number = 100;
      middle.scalseRange = .4;
      var left = FireworkSettings.copy(middle);
      left.pos = cc.v2(-600, -400);
      left.side = cc.v2(200, 1e3);
      var right = FireworkSettings.copy(middle);
      right.pos = cc.v2(600, -400);
      right.side = cc.v2(-200, 1e3);
      showFireworks(middle);
      showFireworks(left);
      showFireworks(right);
    }
    cc._RF.pop();
  }, {} ]
}, {}, [ "et_13", "util" ]);