明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在PB中用Flash制作Splash封面

[摘要]長江委漢江局職校 葉林利 我們常用的軟件如Word,Excel,PhotoShop等在運(yùn)行時都有一個Splash封面,該封面既顯示軟件的名稱、版本、開發(fā)人員以及使用者等信息,又可以在后臺初始化數(shù)據(jù)庫和軟件需要調(diào)用的文件。但這些Splash封面文件通常只包含靜態(tài)的圖片和文本對象,常常顯得比較單調(diào)。我...
長江委漢江局職校 葉林利

我們常用的軟件如Word,Excel,PhotoShop等在運(yùn)行時都有一個Splash封面,該封面既顯示軟件的名稱、版本、開發(fā)人員以及使用者等信息,又可以在后臺初始化數(shù)據(jù)庫和軟件需要調(diào)用的文件。但這些Splash封面文件通常只包含靜態(tài)的圖片和文本對象,常常顯得比較單調(diào)。我們是否可以將Splash封面文件做成動態(tài)的呢?答案當(dāng)然是可以的。筆者在用PowerBuilder 8.0為單位開發(fā)工資軟件時通過調(diào)用Flash文件制作出新穎、漂亮的Spalsh封面。以下詳細(xì)介紹制作過程。
1.先將Swflash.Ocx文件復(fù)制到Windows\system32(若為Windows98系統(tǒng)則為System目錄)下,然后單擊開始,運(yùn)行,在運(yùn)行框中輸入Regsvr32 c:\windows\system32\swflash.ocx,單擊確定即可注冊swflash.ocx控件 。


2.在Flash中制作一大小為550px×450px的Flash文件splash.fla,并輸出為splash.swf,保存在開發(fā)目錄下。
3.在PowerBuilder中新建一應(yīng)用Splash.pbl,在應(yīng)用的Open事件中添加如下代碼:Open(w_splash) //打開Splash封面窗口。
4.在Powerbuilder中新建一函數(shù)wf_get_Curr_dir,Access為Public,Return Type 為String,函數(shù)名為wf_get_Curr_dir,在該函數(shù)中添加如下代碼
//獲得當(dāng)前應(yīng)用所在的目錄
string ls_Buffer

ls_Buffer=Space(255)

IF GetCurrentDirectoryA(255,ls_Buffer)=0 THEN SetNull(ls_Buffer)

RETURN ls_Buffer

代碼中的GetCurrentDirectoryA為WindowsAPI函數(shù),在應(yīng)用的Globa External Functions中聲明:
Function ulong GetCurrentDirectoryA(ulong nBufferLength,ref string lpBuffer) Library "kernel32.dll"
5.新建一窗口w_Splash,其屬性如下表:
窗口/控件名 值
WindowType Popup!
WindowState Normal!
Visible True
Enabled True
ClientEdge True
Center True
Width 1847
Height 1092
將窗口的Titlebar、ControlMenu、MaxBox、MinBox、PaletteWindow、RightToLeft、Border等全部取消選擇。
6.在窗口中插入一Ole控件,打開如下對話框:


單擊Insert Control頁面


在Control Type下的列表框中選擇Shockwave Flash Object,然后單擊OK按鈕即可在窗口中插入flash控件,其屬性設(shè)置如下表:
窗口/控件名 值
Name Ole_1
Visible True
Enabled True
BorderStyle StyleLowered!
其它屬性保持不變。
在窗口的Open事件、Close事件、Timer事件中分別加入如下代碼:
Open事件:
String ls_path,ls_swffile  
ls_path=wf_get_curr_dir() //獲得當(dāng)前應(yīng)用的路徑
ls_swffile=ls_path+'\splash.swf'
ole_1.move(0,0)  
ole_1.width=this.workspacewidth( )
ole_1.height=this.workspaceheight( )
ole_1.object.movie(ls_swffile)
ole_1.object.play()
timer(5,this)

Close事件:
timer(0,this)
//open(w_logon) //打開登陸窗口

Timer事件
Close(this)

至此本應(yīng)用的Splash封面窗口建立完畢,單擊運(yùn)行按鈕即可運(yùn)行。

以上程序在Windows98/2000/xp 和Powerbuilder 7.0/8.0下運(yùn)行通過。