當前位置:編程學習大全網 - 行動軟體 - 求助:怎樣解決flash.ocx這個控件的加載問題?求助

求助:怎樣解決flash.ocx這個控件的加載問題?求助

在C++ Builder中使用ActiveX控件顯示Flash動畫

在微軟的大力扶持下,越來越多的軟件公司開始支持ActiveX了,這對於喜

歡編程的朋友來說可是件值得高興的事!因為我們可以在程序中很方便地調用外

部的OCX文件來實現復雜的功能(比爾·蓋茨這回總算做了件好事),比如在妳

的程序中調用IE來顯示HTML文件等。今天我想向大家介紹壹下如何在C++

Builder中使用ActiveX控件顯示Flash動畫。

1.安裝、導入ActiveX控件

本文的主角是:swflash.ocx,這個文件Windows98中附帶有,在缺省模式下

Windows會將它安裝到“Windows\System\Macromed\Flash”目錄下,如果妳在安

裝時沒有選“缺省安裝”可以到Win98的安裝光盤中的win98_68.cab文件中找到

它。

C++ Builder在對ActiveX的支持方面可說是做得非常出色,我們可以很方

便地導入系統中的ActiveX控件:選擇“Component->Import ActiveX Control

”,在上面的控件列表中選擇“ShockWave Flash(Version 1.0)”(圖1),再

點下面的“Install”按鈕就行了!如果控件列表中沒有它,那麽說明ShockWave

Flash控件還沒有在系統中註冊,不要緊,我們可以點擊“Add”按鈕在妳的計

算機中找到這個OCX文件後再Install,C++ Builder會自動為它註冊。

2.編程顯示Flash動畫

導入成功後,C++ Builder會在ActiveX頁中增加壹個“ShockWaveFlash”

控件(圖2),建立壹個新工程,在合適的位置放置壹個ShockWaveFlash控件,

適當調整壹下它的大小,然後在它的“Movie”屬性中填上壹個妳的硬盤上已有

的Flash動畫文件名(如c:\flash\test.swf),然後按F9運行,怎麽樣,不用寫壹

行代碼我們就做出了壹個能顯示Flash動畫的程序!

不過為了讓它更好地工作,我們還有必要了解壹下ShockWaveFlash控件的屬

性和方法:

屬性AlignMode(int型)和SAlign(WideString型) 控制動畫的顯示位置

(把這兩個屬性列在壹起說明它們是相互關聯的,改變壹個另壹個也會相應地改

變,後面類似的情況就不作說明了)。取值範圍及含義如下:

0 空 當前位置

1 L 當前位置靠左

2 R 當前位置靠右

3 LR 當前位置居中

4 T 當前位置靠上

5 LT 左上

6 TR 右上

7 LTR 上方居中

8 B 當前位置靠下

9 LB 左下

10 RB 右下

11 LRB 下方居中

12 TB 當前位置垂直居中

13 LTB 靠左垂直居中

14 TRB 靠右垂直居中

15 LTRB 中央位置

屬性BackgroundColor(int型)和BGColor(WideString型) 設置背景顏色

,BackgroundColor為整型值,BGColor為它的HEX字符串。

屬性Loop(bool型) 是否循環顯示

屬性Menu(bool型) 是否顯示右鍵菜單,建議設為true,因為它可以完

成對Flash動畫的大部分控制工作,而不用我們寫代碼。

屬性Movie(WideString型) Flash動畫的文件名,可以在運行狀態動態

設置,要關閉壹個動畫只要把它設為空即可。

屬性Quality(int型)和Quality2(WideString型) 控制動畫的顯示質量

,壹般將Quality設為1以獲得高質量的顯示效果。

屬性ScaleMode(int型)和scale(WideString型) 控制動畫的顯示比例,

取值範圍及含義如下:

0 ShowAll 顯示全部

1 NoBorder 無邊框模式

2 ExactFit 拉伸到整個畫面

3 空 原始大小

方法PercentLoaded 返回動畫已經加載的百分比,妳可以建立壹個進程

條(ProgressBar)來顯示動畫加載的進程。

方法LoadMovie 用於加載網絡上的動畫,動畫文件名為壹個BSTR型的

URL值,在 C++ Builder 中可以用 AnsiToOLESTR 函數將Char型的字符串轉換

成BSTR型。

好了,利用上面介紹的屬性和方法,相信妳已經很好地使用它了!遺憾的是

ShockWaveFlash 控件的功能現在還不太完善,比如無法返回動畫的實際大小和

背景顏色等,但對於我們只要在程序中顯示壹個特定的Flash動畫來說,這些並

不重要。

3.註冊ActiveX控件

如果妳要把妳的程序給別人使用,為了防止他沒有安裝或是註冊swflash.

ocx文件而導致程序無法運行,妳必須把OCX文件也壹起附帶上,並在程序中為它

在系統中註冊,註冊方法有兩種:

方法壹:調用外部程序 Regsvr32.exe

註冊: ShellExecute(Handle,NULL,“regsvr32.exe”,“swflash.ocx”,

NULL,SW_SHOWNORMAL);

反註冊: ShellExecute(Handle,NULL,“regsvr32.exe”,“/u swflash.

ocx”,NULL,SW_SHOWNORMAL);

方法二:調用控件本身所包含的註冊和反註冊函數

每壹個OCX控件中都提供了兩個輸出函數“DllRegisterServer”和“

DllUnRegisterServer”,可以註冊和反註冊控件本身,我們可以用

LoadLibrary()和GetProcAddress()來調用它們,這和動態調用DLL庫的方法是壹

樣的,我在這裏就不多說了。

4.經驗之談

最後,我還想介紹壹下使用ActiveX控件的技巧。

壹般的ActiveX控件都是沒有幫助文件的,在C++ Builder的IDE環境中我

們只能看到它的設計期屬性和事件,那麽怎麽才能知道它的運行期屬性和方法呢

?C++ Builder在導入壹個ActiveX控件後會在“Imports”目錄中生成相應的

頭文件(*.h),只要把它打開看壹下就壹目了然了!

另外我們還必須了解各種屬性、方法及其參數的含義,那就要編程序來試了

,為每個想了解的屬性和方法建立壹個菜單項,點擊時用InputBox輸入參數來試

驗效果,還可以建立壹個狀態欄來顯示與其相關變量的值。

寫了這麽多,不知妳是否理解了呢?還不趕快在妳的程序裏加上如今最流行

的Flash動畫,讓妳的朋友羨慕壹下!

  • 上一篇:什麽網站可以接裝修活
  • 下一篇:巾幗大將軍在哪裏拍攝的?
  • copyright 2024編程學習大全網