長江委漢江局職校 葉林利
我們常用的軟件如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下運行通過。
|