效果如图,需求:弹窗出现后,字幕逐字显示,全部显示完后出现下一步按钮
private dialog: Laya.Dialog;
private index:number = 0;
private fun (){
//创建一下基础的弹窗,text,button啥的添加到弹窗中,然后调用下面的计时器
this.dialog = new Laya.Dialog()
let text = new Laya.Text()
this.dialog.addChild(text);
let button = new Laya.Button()
this.dialog.addChild(button);
button.visible = false //设置按钮完了之后隐藏,当字幕读完了之后在显示
let str = "哒哒哒哒哒哒哒哒哒哒哒哒哒"
Laya.timer.loop(100, this, this.onUpdate , [str,button])
//传入text 的内容,还有button节点
}
private onUpdate(str, barrageBtn){
this.index++
if(this.index > str.length) { // 判读是否已经读完
Laya.timer.clearAll(this);
barrageBtn.visible = true
this.index = 0
return;
}
this.dialog.getChildren(text的名字).text = (str.substr(0, this.index))
console.log(this.index,str.substr(0, this.index))
//打印一下
}