PowerBuilder中动画的设计与实现
2013-12-05周小平
周小平
【摘 要】文章介绍了PowerBuilder中一些常用事件、常用函数,在此基础上详细介绍了如何实现文字的滚动以及窗口的移动。
【关键词】PowerBuilder;动画;窗口
0.引言
作为一款优秀的企业级数据库前端应用开发工具,不仅提供简洁友好的用户界面,而且拥有功能强大的数据窗口技术以及性能优越的数据库访问能力,所以很多程序开发人员都很喜欢它,PowerBuilder是当前最流行的数据库前端开发工具之一。
在PowerBuilder中定义了很多事件和函数,程序开发人员利用这些事件和函数不仅能提高工作效率,而且能实现各种功能,比如查询、录入等。本文在介绍相关的常用事件、常用函数以及使用方法之后,通过具体的实例在PowerBuilder来实现动画效果。
1.基本知识介绍
要想在PowerBuilder实现动画效果,我们可以利用Timer事件和Timer函数。
1.1常用事件
Open事件:在窗口打开之后、显示之前发生,这时系统已经包含窗口所有属性以及窗口中的所有控件。
Timer事件:定时器事件,跟Timer ()函数结合在一起,给程序开发者提供了许多便利。
1.2常用函数[1]
Timer (number ):设置一个时间间隔,在设置的时间间隔内反复触发指定窗口的定时器事件,从而达到用户想要的目的。
Space( ):返回指定数目的空格组成的字符串,如space(3),则返回具有三个空格的字符串;
Len(string ):取得指定字符串的长度。
Right(string,n):从指定字符串尾部取指定个数的字符。
Left(string,n):得到字指定符串左部指定个数的字符。
SetRedraw():用来关闭或开启控件的重画功能。
2.动画效果的实现
在PowerBuilder中我们要想直接播放动画文件(如flash动画文件)是有一定的难度的,但是我们要想实现一些相对简单的动画效果还是比较容易的,我们可以利用PowerBuilder中的Timer()来实现此效果。下面分别介绍文字的滚动和窗口动画显示效果的实现方法。在此之间先新建一个应用程序,然后新建2个窗口,分别命名为w_flash1、w_flash2,在w_flash1、w_flash2中分别插入一个静态文本控件,文本内容(text)分别为“文字的滚动”和“动画显示窗口”。
2.1 滚动的文字
(1)在应用程序对象里编写启动代码:
Open(w_flash1)
(2)在w_flash1的open( )事件里编写:
St_2.text =st_2.text+space(int(w_about.width/20))
Timer(0.05) //每隔0.05秒触发timer( )事件
(3)在w_flash1的timer( )事件里编写:
String ls_help,ls_banner
Long len
Ls_banner=st_2.text
Len =len(st_2.text)
Ls_help=right(ls_banner,len-2)+left(ls_banner,2)
St_2.text=ls_help
2.2窗口的动画显示
(1)在应用程序对象里编写启动代码:
Open(w_flash2)
(2)在窗口w_flash2的open( )事件里面编写如下代码:
Timer(1)//表示每隔1秒触发timer( )事件
(3)在窗口的设计视图区选择“Declare Instance variables”选项卡,在其中声明一个实例变量:
Integer ii_i=1
(4)在主窗口W_flash的 timer( )事件里编写如下代码,以完成窗口动画显示的功能(以下只给出让窗口向下、向右下、向右移动的代码,如果想让其向上、向左、向左上移动,只需修改稍微修改下代码即可)。
Integer li_num
If ii_i=1 then
For li_num=1 to 1540 step 1
W_flash.move(1,li_num) //Y坐标递增,图形向下移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
If ii_i=2 then
For li_num=1 to 1540step 1
W_flash.move(li_num,li_num)//X、Y坐标递增,图形向右下下移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
If ii_i=3 then
For li_num=1 to 1540 step 1
W_flash.move(li_num,1)//X坐标递增,图形向右移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
3.结束语
PowerBuilder是一款优秀的企业级数据库前端应用开发工具,是当前最流行的数据库前端开发工具之一。在PB中,利用Timer()能够实现动画效果,从而使得设计出来的相关软件增加不一样的效果,使得软件更加生动。本文在介绍了PowerBuilder的常用事件、常用函数,并结合实例详细的介绍了在PowerBuilder中实现动画效果的方法。
【参考文献】
[1]陈永强,李茜.SQL Server 2005+PowerBuilder11高级开发指南.清华大学出版社.
[2]樊金生,张翠肖.PowerBuilder 10.5实用教程.科学出版社.
[3]王羡欠,周燕玲.PowerBuilder 9与Flash的交互编程.计算机与现代化,2009.