最近在做公司游戏项目时,新手引导部分需要一个文字逐个出现的效果。
自己写了一个通用方法,感觉效果还可以。所以分享一下,欢迎讨论。
我的思路就是利用split(”)方法把字符串分割成逐个的字符存放到数组中。
设置一个空的字符串,每隔一定的时间就在这个字符串后面增加一个字符。
传入的参数分别是需要显示的Label组件,显示的文字text以及动画播放完成之后
调用的回调方法cb。
代码如下:
typingAni: function (label, text, cb) {
var self = this;
var html = '';
var arr = text.split('');
var len = arr.length;
var step = 0;
self.func = function () {
html += arr[step];
label.string = html;
if (++step == len) {
self.unschedule(self.func, self);
cb && cb();
}
}
self.schedule(self.func,0.05, cc.macro.REPEAT_FOREVER, 0)
},