在PB中用Flash制作Splash封面
發表時間:2024-06-16 來源:明輝站整理相關軟件相關文章人氣:
[摘要]長江委漢江局職校 葉林利 我們常用的軟件如Word,Excel,PhotoShop等在運行時都有一個Splash封面,該封面既顯示軟件的名稱、版本、開發人員以及使用者等信息,又可以在后臺初始化數據庫和軟件需要調用的文件。但這些Splash封面文件通常只包含靜態的圖片和文本對象,常常顯得比較單調。我...
長江委漢江局職校 葉林利
我們常用的軟件如Word,Excel,PhotoShop等在運行時都有一個Splash封面,該封面既顯示軟件的名稱、版本、開發人員以及使用者等信息,又可以在后臺初始化數據庫和軟件需要調用的文件。但這些Splash封面文件通常只包含靜態的圖片和文本對象,常常顯得比較單調。我們是否可以將Splash封面文件做成動態的呢?答案當然是可以的。筆者在用PowerBuilder 8.0為單位開發工資軟件時通過調用Flash文件制作出新穎、漂亮的Spalsh封面。以下詳細介紹制作過程。
1.先將Swflash.Ocx文件復制到Windows\system32(若為Windows98系統則為System目錄)下,然后單擊開始,運行,在運行框中輸入Regsvr32 c:\windows\system32\swflash.ocx,單擊確定即可注冊swflash.ocx控件 。
2.在Flash中制作一大小為550px×450px的Flash文件splash.fla,并輸出為splash.swf,保存在開發目錄下。
3.在PowerBuilder中新建一應用Splash.pbl,在應用的Open事件中添加如下代碼:Open(w_splash) //打開Splash封面窗口。
4.在Powerbuilder中新建一函數wf_get_Curr_dir,Access為Public,Return Type 為String,函數名為wf_get_Curr_dir,在該函數中添加如下代碼
//獲得當前應用所在的目錄
string ls_Buffer
ls_Buffer=Space(255)
IF GetCurrentDirectoryA(255,ls_Buffer)=0 THEN SetNull(ls_Buffer)
RETURN ls_Buffer
代碼中的GetCurrentDirectoryA為WindowsAPI函數,在應用的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控件,其屬性設置如下表:
窗口/控件名 值
Name Ole_1
Visible True
Enabled True
BorderStyle StyleLowered!
其它屬性保持不變。
在窗口的Open事件、Close事件、Timer事件中分別加入如下代碼:
Open事件:
String ls_path,ls_swffile
ls_path=wf_get_curr_dir() //獲得當前應用的路徑
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)
至此本應用的Splash封面窗口建立完畢,單擊運行按鈕即可運行。
以上程序在Windows98/2000/xp 和Powerbuilder 7.0/8.0下運行通過。