invite_page/assets/scripts/scrollContent.js
2019-02-28 21:34:11 +08:00

176 lines
4.9 KiB
JavaScript

let onfire = require('./utils/onfire');
let webapi = require('./utils/webapi');
let bowser = require('./utils/bowser');
cc.Class({
extends: cc.Component,
properties: {
part1: {
default: null,
type: cc.Node
},
part2: {
default: null,
type: cc.Node
},
part3: {
default: null,
type: cc.Node
},
part4: {
default: null,
type: cc.Node
},
part5: {
default: null,
type: cc.Node
},
processBarPrefab: {
default: null,
type: cc.Prefab
},
puzzlePrefab: {
default: null,
type: cc.Prefab
},
tipPrefab: {
default: null,
type: cc.Prefab
},
imageSwiperPrefab: {
default: null,
type: cc.Prefab
},
bottomSwiperPrefab: {
default: null,
type: cc.Prefab
},
joinBtn: {
default: null,
type: cc.Node
},
inviteBtn: {
default: null,
type: cc.Node
},
ruleBtn: {
default: null,
type: cc.Node
},
loginStatusLabel: {
default: null,
type: cc.Label
},
logoutBtn: {
default: null,
type: cc.Node
},
qrCodeQQ: {
default: null,
type: cc.Node
},
qrCodeWechat: {
default: null,
type: cc.Node
},
touchTarget: null,
tipLabel: {
default: null,
type: cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
onLoad() {
let self = this;
this.loginStatusLabel.node.active = false;
var processBar = cc.instantiate(this.processBarPrefab);
// processBar.getComponent('progressBar').currentVal = 50000;
this.part1.addChild(processBar);
processBar.getComponent('progressBar').updateShow(1024);
this.puzzle = cc.instantiate(this.puzzlePrefab);
this.part2.addChild(this.puzzle);
this.tipLabel = cc.instantiate(this.tipPrefab);
this.part2.addChild(this.tipLabel);
this.tipLabel.active = false;
var imageSwiper = cc.instantiate(this.imageSwiperPrefab);
this.part4.addChild(imageSwiper, 0);
var bottomSwiper = cc.instantiate(this.bottomSwiperPrefab);
this.part5.addChild(bottomSwiper);
this.logoutBtn.on('click', function () {
self.top.userLogout();
});
webapi.getActivityInfo()
.then(rep => {
if (rep.errcode === 0) {
processBar.getComponent('progressBar').updateShow(rep.count);
}
})
.catch(err => {
cc.log('error get activity info');
});
this.schedule(function () {
webapi.getActivityInfo()
.then(rep => {
if (rep.errcode === 0) {
processBar.getComponent('progressBar').updateShow(rep.count);
}
})
.catch(err => {
cc.log('error get activity info');
});
}, 60); //每1分钟更新一次
if (bowser.version.weiXin || !bowser.version.mobile) {
this.qrCodeWechat.active = true;
} else {
this.qrCodeWechat.active = false;
this.qrCodeQQ.position = cc.v2(0, -100);
}
},
start() {
this.startup = false;
this.qrCodeQQ.on(cc.Node.EventType.TOUCH_START, this.onTouchBg, this);
this.qrCodeQQ.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this);
this.qrCodeWechat.on(cc.Node.EventType.TOUCH_START, this.onTouchBg, this);
this.qrCodeWechat.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this);
},
update(dt) {
if (this.startup) {
this.time += dt;
if (this.time > 1) {
this.onTouchEnd();
onfire.fire("longPressed", {target: this.touchTarget, val: ''});
}
}
},
onTouchBg(e) {
this.touchTarget = e.target.name;
this.time = 0;
this.startup = true;
},
onTouchEnd(e) {
this.time = 0;
this.startup = false;
},
updatePuzzle(valArr) {
this.puzzle.getComponent('puzzle').updateValues(valArr)
},
updateUserName(username) {
this.loginStatusLabel.string = username;
},
toggleLoginStatus(status) {
this.loginStatusLabel.node.active = status;
this.joinBtn.active = !status;
},
updateTipTxt(str) {
this.tipLabel.active = true;
this.tipLabel.getComponent('inviteTip').setLabelTxt(str);
},
hideTipTxt() {
this.tipLabel.active = false;
}
});