"use strict";
cc._RF.push(module, 'f4edeRi+NdAabqAkVYRwFjK', 'Scene');
// FT_06/script/Scene.js

"use strict";

// Learn cc.Class:
//  - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
cc.Class({
  "extends": cc.Component,
  properties: {},
  // 生命周期 onLoad
  onLoad: function onLoad() {
    this.initSceneData();
    this.initSize();
  },
  _imageResList: null,
  _audioResList: null,
  _animaResList: null,
  initSceneData: function initSceneData() {
    this._imageResList = [];
    this._audioResList = [];
    this._animaResList = [];
  },
  _designSize: null,
  // 设计分辨率
  _frameSize: null,
  // 屏幕分辨率
  _mapScaleMin: null,
  // 场景中常用缩放（取大值）
  _mapScaleMax: null,
  // 场景中常用缩放（取小值）
  _cocosScale: null,
  // cocos 自缩放 （较少用到）
  initSize: function initSize() {
    // 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
    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;
  },
  // 生命周期 start
  start: function start() {
    var _this = this;

    var getData = this.getData.bind(this);

    if (window && window.courseware) {
      getData = window.courseware.getData;
    }

    getData(function (data) {
      console.log('data:', data);
      _this.data = data || _this.getDefaultData();
      _this.data = JSON.parse(JSON.stringify(_this.data));

      _this.preloadItem();
    });
  },
  getData: function getData(cb) {
    cb(this.getDefaultData());
  },
  getDefaultData: function getDefaultData() {
    var dataJson = '{"pic_url":"http://staging-teach.cdn.ireadabc.com/ed94332a503c31e0908bd4c6923a2665.png","pic_url_2":"http://staging-teach.cdn.ireadabc.com/5fb60317ade0195d35ad8034d5370a7f.png","text":"This is a test label.","audio_url":"http://staging-teach.cdn.ireadabc.com/f47f1d7b5c160fe1c59500d180346240.mp3"}';
    var data = JSON.parse(dataJson);
    return data;
  },
  preloadItem: function preloadItem() {
    this.addPreloadImage();
    this.addPreloadAudio();
    this.addPreloadAnima();
    this.preload();
  },
  addPreloadImage: function addPreloadImage() {
    this._imageResList.push({
      url: this.data.pic_url
    });

    this._imageResList.push({
      url: this.data.pic_url_2
    });
  },
  addPreloadAudio: function addPreloadAudio() {
    this._audioResList.push({
      url: this.data.audio_url
    });
  },
  addPreloadAnima: function addPreloadAnima() {},
  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();

      if (window && window["air"]) {
        window["air"].hideAirClassLoading();
      }

      cc.debug.setDisplayStats(false);
    });
  },
  loadEnd: function loadEnd() {
    this.initData();
    this.initAudio();
    this.initView(); // this.initListener();
  },
  _cantouch: null,
  initData: function initData() {
    // 所有全局变量 默认都是null 
    this._cantouch = true;
  },
  audioBtn: null,
  initAudio: function initAudio() {
    var audioNode = cc.find('Canvas/res/audio');

    var getAudioByResName = function getAudioByResName(resName) {
      return audioNode.getChildByName(resName).getComponent(cc.AudioSource);
    };

    this.audioBtn = getAudioByResName('btn');
  },
  initView: function initView() {
    this.initBg();
    this.initPic();
    this.initBtn();
    this.initIcon();
  },
  initBg: function initBg() {
    var bgNode = cc.find('Canvas/bg');
    bgNode.scale = this._mapScaleMax;
  },
  pic1: null,
  pic2: null,
  initPic: function initPic() {
    var _this3 = this;

    var canvas = cc.find('Canvas');
    var maxW = canvas.width * 0.7;
    this.getSprNodeByUrl(this.data.pic_url, function (sprNode) {
      var picNode1 = sprNode;
      picNode1.scale = maxW / picNode1.width;
      picNode1.baseX = picNode1.x;
      canvas.addChild(picNode1);
      _this3.pic1 = picNode1;
      var labelNode = new cc.Node();
      labelNode.color = cc.Color.YELLOW;
      var label = labelNode.addComponent(cc.Label);
      label.string = _this3.data.text;
      label.fontSize = 60;
      label.lineHeight = 60;
      label.font = cc.find('Canvas/res/font/BRLNSDB').getComponent('cc.Label').font;
      picNode1.addChild(labelNode);
    });
    this.getSprNodeByUrl(this.data.pic_url_2, function (sprNode) {
      var picNode2 = sprNode;
      picNode2.scale = maxW / picNode2.width;
      canvas.addChild(picNode2);
      picNode2.x = canvas.width;
      picNode2.baseX = picNode2.x;
      _this3.pic2 = picNode2;
      var labelNode = new cc.Node();
      var label = labelNode.addComponent(cc.RichText);
      var size = 60;
      label.font = cc.find('Canvas/res/font/BRLNSDB').getComponent(cc.Label).font;
      label.string = "<outline color=#751e00 width=4><size=" + size + "><color=#ffffff>" + _this3.data.text + "</color></size></outline>";
      label.lineHeight = size;
      picNode2.addChild(labelNode);
    });
  },
  initIcon: function initIcon() {
    var _this4 = this;

    var iconNode = this.getSprNode('icon');
    iconNode.zIndex = 5;
    iconNode.anchorX = 1;
    iconNode.anchorY = 1;
    iconNode.parent = cc.find('Canvas');
    iconNode.x = iconNode.parent.width / 2 - 10;
    iconNode.y = iconNode.parent.height / 2 - 10;
    iconNode.on(cc.Node.EventType.TOUCH_START, function () {
      _this4.playAudioByUrl(_this4.data.audio_url);
    });
  },
  curPage: null,
  initBtn: function initBtn() {
    var _this5 = this;

    this.curPage = 0;
    var bottomPart = cc.find('Canvas/bottomPart');
    bottomPart.zIndex = 5; // 提高层级

    bottomPart.x = bottomPart.parent.width / 2;
    bottomPart.y = -bottomPart.parent.height / 2;
    var leftBtnNode = bottomPart.getChildByName('btn_left'); //节点中添加了button组件 则可以添加click事件监听

    leftBtnNode.on('click', function () {
      if (!_this5._cantouch) {
        return;
      }

      if (_this5.curPage == 0) {
        return;
      }

      _this5.curPage = 0;

      _this5.leftMove();

      cc.audioEngine.play(_this5.audioBtn.clip, false, 0.8);
    });
    var rightBtnNode = bottomPart.getChildByName('btn_right'); //节点中添加了button组件 则可以添加click事件监听

    rightBtnNode.on('click', function () {
      if (!_this5._cantouch) {
        return;
      }

      if (_this5.curPage == 1) {
        return;
      }

      _this5.curPage = 1;

      _this5.rightMove();

      cc.audioEngine.play(_this5.audioBtn.clip, false, 0.5);
    });
  },
  leftMove: function leftMove() {
    var _this6 = this;

    this._cantouch = false;
    var len = this.pic1.parent.width;
    cc.tween(this.pic1).to(1, {
      x: this.pic1.baseX
    }, {
      easing: 'cubicInOut'
    }).start();
    cc.tween(this.pic2).to(1, {
      x: this.pic2.baseX
    }, {
      easing: 'cubicInOut'
    }).call(function () {
      _this6._cantouch = true;
    }).start();
  },
  rightMove: function rightMove() {
    var _this7 = this;

    this._cantouch = false;
    var len = this.pic1.parent.width;
    cc.tween(this.pic1).to(1, {
      x: this.pic1.baseX - len
    }, {
      easing: 'cubicInOut'
    }).start();
    cc.tween(this.pic2).to(1, {
      x: this.pic2.baseX - len
    }, {
      easing: 'cubicInOut'
    }).call(function () {
      _this7._cantouch = true;
    }).start();
  },
  // update (dt) {},
  // ------------------------------------------------
  getSprNode: 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;
  },
  getSpriteFrimeByUrl: function getSpriteFrimeByUrl(url, cb) {
    cc.loader.load({
      url: url
    }, function (err, img) {
      var spriteFrame = new cc.SpriteFrame(img);

      if (cb) {
        cb(spriteFrame);
      }
    });
  },
  getSprNodeByUrl: function getSprNodeByUrl(url, cb) {
    var node = new cc.Node();
    var spr = node.addComponent(cc.Sprite);
    this.getSpriteFrimeByUrl(url, function (sf) {
      spr.spriteFrame = sf;

      if (cb) {
        cb(node);
      }
    });
  },
  playAudioByUrl: function playAudioByUrl(audio_url, cb) {
    if (cb === void 0) {
      cb = null;
    }

    if (audio_url) {
      cc.assetManager.loadRemote(audio_url, function (err, audioClip) {
        var audioId = cc.audioEngine.play(audioClip, false, 0.8);

        if (cb) {
          cc.audioEngine.setFinishCallback(audioId, function () {
            cb();
          });
        }
      });
    }
  } // ------------------------------------------

});

cc._RF.pop();