原始視頻或動畫沒有字幕,.在將它們引入到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兩個系統函數只與圖標名稱有關,而與圖標內容無關,可以保證不增刪流程中的圖標,只是重新置入動畫,修改與之對應的文字信息,就可以實現其它同步字幕的控制了。