SamsaraGame/assets/Script/panel/PalaceNotice.js
2025-04-24 17:03:28 +08:00

57 lines
1.5 KiB
JavaScript

cc.Class({
extends: cc.Component,
properties: {
background: cc.Node,
richText: cc.RichText,
},
onLoad() {
if (!this.str_list)
this.str_list = [];
this.running = false;
},
start() {
// this.unshowRichText();
},
addStrToList(str) {
if (!this.str_list)
this.str_list = [];
this.str_list.push(str);
if (!this.running) {
this.showRichText(this.str_list.shift());
}
},
showRichText(str) {
this.running = true;
this.background.getComponent(cc.Animation).play('palaceNotice');
for (let item of this.node.children) {
item.active = true;
}
this.node.active = true;
this.richText.string = str;
let maskWidth = cc.find('Mask', this.node).width;
this.richText.node.x = maskWidth / 2;
this.richText.node.runAction(cc.sequence(
cc.moveBy(10, cc.v2(-maskWidth - this.richText.node.width, 0)),
cc.callFunc(() => {
if (this.str_list.length > 0) {
this.showRichText(this.str_list.shift());
} else {
this.unshowRichText();
this.running = false;
}
})
));
},
unshowRichText() {
this.background.getComponent(cc.Animation).stop('palaceNotice');
for (let item of this.node.children) {
item.active = false;
}
},
});