原始视频或动画没有字幕,.在将它们引入到Authorware中以后,如何简单、快速地给它们增加一个同步性好的字幕呢?本文介绍一个设置永久性移动图标,使用系统变量MediaPosition,控制移动图标的移动目标位置,从而实现动画和文字严格同步的程序控制方法。
图1为主程序段。前面三个显示图标是对同步字幕的一些定义,.包括背景挡板、文字框和文字等。
图1 同步字幕的程序流程
数字电影图标“Tom Edison”属性设置“Timing”区的【Concurrency】域,设置为“Concurrent”同步运动方式,即动画播放一启动便进入下面的移动图标,实现动画和文字移动同时进行的程序效果。
移动图标“Move Text”的移动类型是“Path to Point”,属性设置“Motion”区【Concurrency】的同步方式是“Perpetual”,这一点很重要,有了它才能保证让文字产生连续的移动效果。
再看“Layout”区,这是程序的核心部分,.如图2所示。
图2 “Move Text”图标“Layout”区设置
对象“Text String”定义起点刻度【Base】域为0,.终点刻度【End】域为MediaLength@“Tom Edison"(动画“Tom Edison”的总帧数)沿路径方向的移动。定义的方法是:鼠标在【Base】域中单击,输入数字0,拖动使文字对象的起始端显示在文本框的中间位置;鼠标在【End】域中单击,输入表达式“MediaLength@”TomEdison,拖动使文字对象的最末端显示在文本框的中间位置。移动的当前目标位置【Destination】域为MediaPosition@“TomEdison”(该系统变量返回动画“Tom Edison”播放的当前帧数)。这种设置情况下,程序的执行顺序是:启动数字电影图标“Tom Edison”后,马上启动移动图标“Move Text”,然后程序继续向下执行(退出当前模块),由于数字电影图标“Tom Edison”的播放同步方式是“Concurrent”,动画继续播放,而移动图标“Move Text”的同步方式是“Perpetual”永久方式,从而保证了移动能不停地在【Destination】域中表达式所指定的位置持续移动,实现了动画播放到哪儿,字幕播放到哪儿。动画播放结束,字幕也同时走到最末位置。
由于MovieLength和MovePosition两个系统函数只与图标名称有关,而与图标内容无关,可以保证不增删流程中的图标,只是重新置入动画,修改与之对应的文字信息,就可以实现其它同步字幕的控制了。