| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { _decorator, Component, Label, LabelComponent, Node, Size, Tween, tween, UITransform, v3, Vec3 } from 'cc';
- const { ccclass, property } = _decorator;
- @ccclass('noticePannelCtr')
- export class noticePannelCtr extends Component {
-
- private label:Node|null = null;
- private mask:Node|null = null;
- private label_pos: Vec3 = new Vec3(0, 0, 0);
- private label_length = null;
- private rollTween:Tween<Node> = null;
- start() {
- this.mask = this.node.getChildByName('Mask');
- this.label = this.mask.getChildByName('text_notice');
- this.label_pos = this.label.getPosition().clone();
- this.labelRoll();
- }
- update(deltaTime: number) {
-
- }
- updateText(str: string)
- {
- this.rollTween.stop()
- this.label.getComponent(Label).string = str
- this.label.getComponent(UITransform).contentSize = new Size(str.length*25, this.label.getComponent(UITransform).contentSize.y);
- this.label.setPosition(this.label_pos)
- this.labelRoll()
- }
- labelRoll(){
- this.label_length = this.label.getComponent(UITransform).contentSize.x;
- const moveToLeft = tween().by(10, { position: v3(-this.label_length-850, 0) });
- const resetPosition = tween().call(() => {
- this.label.setPosition(this.label_pos);
- });
- const sequence = tween().sequence( moveToLeft, resetPosition);
- this.rollTween = tween(this.label)
- .then(sequence.repeatForever())
- .start()
- }
- }
|