字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停。字幕添加的前提是用之前的方法添加过介绍语音。
原理:
字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次点击时继续右滑。
效果截图:
步骤及原理:
1.在皮肤.xml文件中添加父元素layer
2.为每一个场景添加字幕。
在每一个场景标签<scene>中添加字幕标签,模板为:
其中自定义的属性及含义为:
parent="skin_subtitles" 定义父元素,将字幕放入第一步定义好的父元素位置。
html=“” 字幕内容,将需要显示的字幕输入,不可以换行。
widthss=“1400” 字幕块的宽,也是字幕停止时,左端点的相对位置。需要手动输入,可通过F12查询字幕快的值。
timess=“30” 介绍音频的长度。需手动输入,就是音频播放时间。用来控制字幕滚动时间。
3.介绍语音控制按钮(暂停/播放按钮)的属性修改
3.1增加属性
tfaaa=“true” 标识字幕显示动态。
3.2 onclick方法中调用字幕控制方法。
原介绍语音控制按钮:
修改后控制按钮:
字幕控制方法代码:(字幕控制方法代码插入至全局事件下方即可)
if(tfaaa, tween(layer[subtitles_text].x,get(layer[subtitles_text].x),0);set(tfaaa,false), mul(mh,layer[subtitles_text].timess,get(layer[subtitles_text].x)); div(mh,get(mh),layer[subtitles_text].widthss); sub(mh,layer[subtitles_text].timess,get(mh)); mod(md,get(mh),1); sub(mh,get(mh),get(md)); tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(mh)); set(tfaaa,true); );
4.在tour.xml中添加全局事件
在切换场景时,上一个场景关闭,将字幕条放在父元素右边固定位置。下一个场景打开时字幕自动向右移。其移动结束位置,和移动时间设置为之前手动输入的数值。
但是场景中全局事件只能有一个,所以需要把这个整合到介绍语音的全局事件内。否则介绍语音不播放。
原创:转载请标明出处