123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { gameMethod } from "../../../common/gameMethod";
- import GameMath from "../../../utils/GameMath";
- const { ccclass, property, menu } = cc._decorator;
- @ccclass
- @menu('Label/LabelAnim')
- export default class LabelAnim extends cc.Component {
- curVal = { val: 0 }
- showAnim: boolean = false
- type: number = 0// 0 完整 1缩写
- realStr: string = ""
- backupValue: number = 0 // 备份的数据,当多次触发时,第二次触发时的初始值直接变成第一次的最终值
- start() {
- //this.setLabelByType()
- }
- onDisable() {
- cc.Tween.stopAllByTarget(this.curVal)
- }
- update(dt) {
- if (!this.showAnim) { return }
- this.setLabelByType()
- }
- //
- initLabel(val: number, type: number = 0, realStr: string = "") {
- this.realStr = ""
- this.curVal = { val: val }
- this.type = type
- this.setLabelByType()
- }
- setLabel(val: number, time: number = 0.5, type: number = 0, realStr: string = "",) {
- if (this.showAnim) {
- cc.Tween.stopAllByTarget(this.curVal.val)
- this.curVal.val = this.backupValue
- }
- this.backupValue = val
- this.showAnim = true
- this.type = type
- this.realStr = realStr
- cc.tween(this.curVal).to(time, { val: val }).
- call(() => {
- this.curVal = { val: val }
- this.showAnim = false
- this.setLabelByType()
- }).
- start()
- }
- private setLabelByType() {
- if (this.node == null || this.node.isValid == false) { return }
- let str = Math.round(this.curVal.val)
- if (gameMethod.isEmpty(this.node) || gameMethod.isEmpty(this.node.getComponent(cc.Label))) return
- switch (this.type) {
- case 0:
- if (this.realStr.length > 0) {
- this.node.getComponent(cc.Label).string = this.realStr.replace("%{0}", str.toString())
- } else {
- this.node.getComponent(cc.Label).string = str.toString()
- }
- break
- case 1:
- if (this.realStr.length > 0) {
- this.node.getComponent(cc.Label).string = this.realStr.replace("%{0}", GameMath.showNum(str, 100000000))
- } else {
- this.node.getComponent(cc.Label).string = GameMath.showNum(str, 100000000)
- }
- break
- }
- }
- }
|