// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.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 const { ccclass, property } = cc._decorator; @ccclass export default class Marquee extends cc.Component { @property([cc.Label]) public labelArr: cc.Label[] = []; public nameArr: string[] = ["惠", "球球", "似水流年", "lalalalalala", "sajk44582", "MjTc626", "Lzg19890603", "WDD200102", "wxsfsdg032", "隔壁老王123", "ssa112233", "sb123", "aode19990203", "只求一份安定", "无可置疑", "一生承诺", "简单灬爱", "别在我面前犯贱", "没有背景丶只有背影", "丶猫猫er", "越疯癫的女人、心越脆弱", "开心的笨小孩", "虚张声势丶", "相见不如怀念", "海阔天空", "焚心劫", "迷路的男人", "虚伪了的真心", "回忆未来", "米兰", "野兽之美", "雁過藍天", "泡泡龙", "tina", "为爱放弃", "花菲", "可儿", "志平", "非想", "生命一旅程", "杰克", "大朋友", "|宝贝雪儿|", "Jessie", "﹎﹎F魚&uot;", "大棒", "灵兰若梦", "锦瑟幽心", "冰城", "文远", "阿红", "我是傻A", "蛰伏", "Davidchan", "tomath", "天涯", "森舟电商肖森舟", "搁浅", "Honeyヽ", "似曾相识", "可可妈", "莲波仙子", "bibe", "小棉", "金色", "谢震宇", "袭夜风", "海藻", "wei", "超越梦想", "曾琦", "眼镜", "kk2288", "strom98", "lin", "平凡", "蔡仁傑", "小宝贝", "纯洁的半烟", "千里之外", "峰回路转", "白帆", "唯独钟情于你", "温柔一脚", "要烦", "尘梦如烟", "鱼一直下", "summer@", "碧荷叶", "6月", "贱狗", "小小", "思静", "梦朦", "英英", "落叶知秋", "淤淤", "无语", "Mr丶小华", "shiyibin", "Liu.J.H", "椰风", "随意", "今生你做伴", "莫名的青春", "日久见人心", "相知相惜", "最迷人的危险", "请在乎我1秒", "爱你心口难开", "怀念最初", "命运不堪浮华", "蝶恋花", "漫长的人生", "浮殇年华", "花容月貌", "li_19820506", "wahaha0203", "kekekekaka", "diu_mu123", "hkhjkasdajk",]; /**钱的数目 */ public moneyNumArr: number[] = [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 100, 100, 100, 100, 100, 100, 200, 200, 200, 200, 300, 300, 500]; // LIFE-CYCLE CALLBACKS: // onLoad () {} start() { // this.initMarquee(); } onEnable() { this.initMarquee(); } onDisable() { this.cancelMarquee() } // update (dt) {} /**初始化 */ initMarquee() { this.middleLabelIndex = 1; for (var i = 0; i < this.labelArr.length; i++) { let label = this.labelArr[i]; label.string = this.getRewardInfo(); } console.log("this.labelArr ", this.labelArr) this.startMarquee(); } /** */ getRewardInfo(): string { let name: string = ""; let nameIndex = Math.floor(Math.random() * this.nameArr.length); name = this.codeName(this.nameArr[nameIndex]); let time = 1 + Math.floor(Math.random() * 10); let moneyNumIndex = Math.floor(Math.random() * this.moneyNumArr.length); let moneyNum: number = this.moneyNumArr[moneyNumIndex]; let rewardInfo: string = `${name}在${time}分钟前成功提现${moneyNum}元` return rewardInfo; } /**给名字加密 */ codeName(name: string): string { let codeName: string = ""; let nameLength: number = name.length; if (name.length == 2) { codeName = name[0] + "*"; } else if (name.length == 3) { codeName = name[0] + "*" + name[2]; } else { for (var i = 0; i < nameLength; i++) { let namaChar = name[i]; if (i == (name.length - 3) || i == (name.length - 2)) { namaChar = "*"; } codeName += namaChar; } } return codeName; } public middleLabelIndex: number = 0; /** */ interval_marquee: number = null; /** */ startMarquee(time: number = 300, delayTime: number = 600) { let opacitySpeed: number = ((255 - 120) / time) * 20; let scaleSpeed: number = (0.2 / time) * 20; let moveDisSpeed: number = (40 / time) * 20; let curTime: number = 0; let curDelayTime: number = 0; let ifDelay: boolean = false; this.interval_marquee = setInterval(() => { if (!ifDelay) { let perIndex = this.middleLabelIndex - 1; if (perIndex < 0) { perIndex += 4; } let perLabel: cc.Label = this.labelArr[perIndex]; let curLabel = this.labelArr[this.middleLabelIndex]; let nextIndex = this.middleLabelIndex + 1; if (nextIndex > 3) { nextIndex -= 4; } let nextLabel: cc.Label = this.labelArr[nextIndex]; let lastIndex = this.middleLabelIndex + 2; if (lastIndex > 3) { lastIndex -= 4; } let lastLabel: cc.Label = this.labelArr[lastIndex]; if (this.middleLabelIndex == 3) { // this.cancelMarquee(); // console.log("perLabel.node", perLabel.node); // console.log("curLabel.node", curLabel.node); // console.log("nextLabel.node", nextLabel.node); // console.log("lastNode.node", lastLabel.node); // console.log("lastNode.node", lastIndex); } curTime += 20; perLabel.node.y += moveDisSpeed; curLabel.node.y += moveDisSpeed; curLabel.node.scale -= scaleSpeed; curLabel.node.opacity -= opacitySpeed; nextLabel.node.y += moveDisSpeed; nextLabel.node.scale += scaleSpeed; nextLabel.node.opacity += opacitySpeed; lastLabel.node.y += moveDisSpeed; if (curTime >= time) { perLabel.node.y = -80; perLabel.string = this.getRewardInfo() ifDelay = true; } } else { curDelayTime += 20; if (curDelayTime >= delayTime) { ifDelay = false; curDelayTime = 0; curTime = 0; this.middleLabelIndex++; if (this.middleLabelIndex > 3) { this.middleLabelIndex = 0; } } } }, 20) } cancelMarquee() { if (this.interval_marquee) { clearInterval(this.interval_marquee); this.interval_marquee = null; } } }