
| 出版日期:1999-09-06 总期号:855 本年期号:65 |
|
用vfp制作影视字幕
在影视剧中,我们经常见到这样的字幕效果:在黑色的背景画面下,红色(或白色)文字渐渐显现出来,然后又渐渐消失在背景中。要实现这个效果并不难,今天我们就用中文版visual foxpro 3.0的表单来模仿一下这个文字渐入渐出的动画过程。 一、添加控件,制作表单 1.在新建的空白表单中添加一个“标签”控件并选中它,然后在其对应的“属性”窗口中依次进行如下设置:
其它没有提及的设置保留默认值,以下同此。 2.在表单中添加一个“命令按钮”控件并选中它,然后在其对应的“属性”窗口中依次进行如下设置:
3.在表单中添加一个“计时器”控件 ,它可以放在表单中的任何位置,表单运行时是不可见的。选中它,然后在其对应的“属性”窗口中进行如下设置:
经过上面的步骤,再对控件的位置做些调整后,即得到如图1所示的表单。
图1 二、为控件添加代码 1进入“演示开始”(command1)按钮的“click”事件代码窗,输入以下代码: if thisform.timer1.enabled=. f. thisform.timer1.enabled=. t. endif 用鼠标单击该按钮后,计时器开始运行,并启动timer事件。 2.进入“计时器”的“timer”事件代码窗,输入以下代码: i=i+10 if i>=255*2 thisform.timer1.enabled=. f. i=0 endif if i>=255 thisform.label1.forecolor=rgb (255*2- i, 0,0) else thisform.label1.forecolor=rgb (i, 0,0) endif timer事件的作用是,当计时器开始运行时(enabled值为.t.),就以interval所规定的值为时间间隔不断运行timer中的代码,直到计时器的enabled值为.f.为止。 rgb(red,green,blue)函数通过其中红、绿、蓝三个参数的值(0~255)的不同组合可得到不同颜色。上面代码的作用即是通过逐渐改变标签(lable1)中文字“淡入淡出效果演示”的颜色,使其从黑色(0,0,0)变为红色(255,0,0),再从红色变回黑色,因为前面将标签背景已设为透明,即与表单的颜色相同,所以当表单的颜色也为黑色时,就实现了文字的渐入渐出效果。 具体实现的代码很简单: (1)当i>255*2,表示文字已经过了由黑变红再返回黑色的过程,于是停止定时器运行。 (2)当i>255,文字处于由红转黑的渐隐过程,此时红色值255*2-i由255逐渐减为0。 (3)当i<255,文字处于由黑转红的渐现过程,此时红色值i由0逐渐增至255。 要注意的是,如果变量i每次循环的增量和计时器中interval的值设置不当,会出现文字一现即逝或半天显不出来的情况。 3.在表单空白处右击鼠标进入“form1”的“activate”事件代码窗,为在计时器中使用的变量i进行定义和初始化: public i i=0 三、最后的修改及表单的运行 在表单中除控件外的其它位置点击鼠标,使属性窗口中显示表单form1的属性,然后做如下修改: backcolor 0,0,0 caption 字幕效果 现在选择系统选单中的“表单-运行表单”,运行表单后,单击“演示开始”按钮……快动手试试吧。 该程序在中文windows 98、visual foxpro 3.0中文专业版中调试运行通过。 (四川 关涛) |
|||||||||||||||||||||||||||||||||||||||||||||||