加載flash必備的ShockwaveFlash控件屬性

屬性:
1.AlignMode (讀寫)
語法:AlignMode As Long
說明:對齊方式,與 SAlign 屬性聯動。當控件的 長寬比例與影片不一致且 WMode 不爲 ExactFit 時,影片(沒有被放大的)在控件中顯示的位置可用該屬性調整。 該屬性值由標誌位組成。如圖,將該屬性值(二進制)中相 應的位標記爲 1 就設置了相應的對齊方向。屬性值與相應的對齊方式。後面括號裏是二進制數。
1:左對齊(0001)
2:右對齊(0010)
4:頂對齊(0100)
8:底對齊(1000)
也可以組合各種對齊方式,同時將兩個或以上的位標記爲 1,也就是將這四個基本值組合相加。比如同時左對齊 和頂對齊,屬性值則設爲 5(0101)。
例子 : 設置影片爲右對齊:
movie.AlignMode = 2

2.SAlign (讀寫)
語法:SAlign As String
說明:對齊模式(與 AlignMode 聯動)。當 AlignMode
代表各對齊模式的位被置“1”時,SAlign 值也相應被設爲
“L”(Left)、“T”(Top)、“R”(Right)、“B”(Bottom)各 字符的組合。‘L’、‘T’、‘R’、‘B’的先後順序不變。
例子:設置影片爲左對齊和頂對齊:
movie.SAlign = "LT"

3.BackgroundColor(讀寫)
語法:BackgroundColor As Long
說明:影片的背景色(與 BGColor 聯動)。以(紅 × 65536 +綠× 256 +藍)計算顏色值。紅綠藍顏色取值範圍(0-255)。默認的影片背景色爲 -1 。如果影片 設置了底色或有圖片當作背景,那麼看不出來該屬性值的改變會有什麼影響。
例子:將影片背景色設爲藍色 :
movie.BackgroundColor = 255


4.BGColor (讀寫)
語法:BGColor As String
說明:影片的背景色(與 BackgroundColor 聯動)。與 BackgroundColor 不同的是,BGColor 是一個六位的十六進制數,每兩位分別代表紅綠藍顏色值。如:FFEEAA 表示 紅色值爲 FF、綠色值爲 EE 、藍色值爲 AA 。
例子:將影片背景色設爲紅色:
movie.BGColor = "FF0000"

5.Base (讀寫)
語法:Base As String
說明:指定用於解決影片中所有相對路徑的聲明的基地址。當影片與其需要的其他文件不在同一目錄中的時候該屬性特別有用。如不特別指定,Base 的值默認爲 ".",也就 是當前影片所在的路徑。
例子 :
movie.Base = "Http://www.domain.com/pathname1/pathname2"

6.Movie (讀寫)
語法:Movie As String
說明:要播放的影片路徑(URL)。設置該屬性爲 一個 SWF 文件的 URL 將載入文件並播放它。若影片是在本地硬盤上,要寫成從盤符開始的絕對路徑;若影片是在某網站上,也要寫全 URL 地址。
例子 :
movie.Movie = "http://www.domain.com/path1/path2/filename.swf"

movie.Movie = "c:\temp\test.swf"

7.DeviceFont (讀寫)
語法:DeviceFont As Boolean
說明 : 決定是否使用影片內嵌的字體, 默認值爲 False。將該屬性值設爲 True 則強制播放器不使用影片中的內嵌的字體而使用本地系統字體。
例子:
movie.DeviceFont = True

8.EmbedMovie (讀寫)
語法:EmbedMovie As Boolean
說明:影片是否被存貯到控件所在的容器中。當你已載入一個影片後將該屬性設爲 True,播放影片時就不必再去讀 SWF 文件了。這使得在 PowerPoint 簡報或 VB 程序 裏使用 Flash 影片更容易。但將該屬性設爲 True 後,控件的 Movie 屬性就不再接受新的值了。要想播放另一個影片(給 Movie 屬性賦新值),必須先將 EmbedMovie 屬性設爲 False 。
例子 :
movie.EmbedMovie = True

9.FrameNum (讀寫)
語法:FrameNum As Long
說明:影片當前幀的編號 (從 0 開始計數)。設置 該屬性值將使影片停在由 FrameNum 指定的幀處。
例子 : 顯示當前幀數:
MsgBox " 當前顯示的是第 " & movie.FrameNum & " 幀。"

使影片顯示第 10 幀:
Bomovie.FrameNum = 9

10.TotalFrames(只讀)
語法:TotalFrames As Long
說明:返回影片中總幀數。該參數要到影片載入完成纔有效(ReadyState=4)。
例子 :
If movie.ReadyState = 4 Then MsgBox " 本影片共有 " & movie.TotalFrames & " 幀。"

11.Loop (讀寫)
語法:Loop As Boolean
說明:是否循環播放。設爲 True 是循環播放,設爲 False 則只播放一次。
例子 :
movie.Loop = True


12.Menu (讀寫)
語法:Menu As Boolean
說明:是否顯示菜單。設爲 True 顯示所有菜單,設爲 False 菜單被屏蔽,但仍有一項“About Macromedia Flash Player...”。如果你實在不喜歡這個菜單,應該在程序中通過攔截鼠標消息的方法來達到目的。與在獨立的 Flash 播放器中不同的是,在控件的右鍵菜單裏點 
“About...”的話,就會打開瀏覽器到 Macromedia 的網站上去 看 About 。
例子 :
movie.Menu = False

13.Playing (只讀)
語法:Playing As Boolean
說明:當前播放狀態。如果影片正在播放,該屬性 值爲 True ,否則爲 False 。
例子 :
If movie.Playing = False Then MsgBox " 影片已停止播放!"

14.Quality (讀寫)
語法:Quality As Long
說明:畫面質量(與 Quality2 聯動)。Quality 可以取:
0 ——相當於 Quality2 取 "Low"
1 ——相當於 Quality2 取 "High"
2 ——相當於 Quality2 取 "AutoLow"
3 ——相當於 Quality2 取 "AutoHigh"
例子 :
movie.Quality = 1

15.Quality2(讀寫)
語法:Quality As String
說明:畫面質量(與 Quality 聯動)。Quality2 可以取:
Low:偏重於播放速度而不管顯示效果,而且不啓用
消鋸齒功能 。
High:偏重於畫面而不管播放速度,並且總是啓用消鋸齒功能。如果影片中不包含動畫就平滑處理位圖;如果有動畫,那麼位圖就不被平滑處理。(這裏的動畫應該是把一張圖片做平移或旋轉)
AutoLow:先着重於播放速度,但只要有可能就改善顯示效果。一開始播放時先禁用消鋸齒功能。如果播放器檢測到處理器能承受得了,就啓用消鋸齒功能 。
AutoHigh:一開始是播放速度和顯示效果並重,但如有必要就犧牲畫質確保速度。開始播放時就啓用消鋸齒功能。但如果實際的幀速率比設計時指定的速率慢了,就禁用消鋸齒功能來提高播放速度。
例子 :
movie.Quality2 = "High"

16.ReadyState(只讀)
語法:ReadyState As Long
說明:影片的當前狀態。ReadyState 可以取:
0 ——正在載入
1 ——未初始化
2 ——已載入
3 ——正在交互
4 ——完成 例子 :
If movie.ReadyState = 4 Then MsgBox " 影片載入完成!"

17.Scale (讀寫)
語法:scale As String
說明:縮放模式(與 ScaleMode 聯動)。Scale 可以 取:
ShowAll ——在控件內顯示全部影片區域,保持影片 長寬比例不變,影片的大小決定於控件長或寬中較小的一 邊 。
NoBorder ——在控件內顯示部分影片區域,保持影片 長寬比例不變,影片的大小決定於控件長或寬中較大的一 邊 。
ExactFit ——在控件內顯示全部影片區域,將影片的長 寬比例強制等於控件的長寬比例。
例子 :
MsgBox " 當前的縮放模式是:" & movie.Scale

18.ScaleMode(讀寫)
語法:ScaleMode As Long
說明:縮放模式(與 Scale 聯動)。ScaleMode 可以取:
0 ——相當於 Scale 取 "ShowAll"
1 ——相當於 Scale 取 "NoBorder"
2 ——相當於 Scale 取 "ExactFit"
例子:使影片的縮放模式改成“ExactFit ”:
movie.ScaleMode = 2

19.Stacking (讀寫)
語法:Stacking As String
說明:用於 HTML,將 Flash Player 當成 HTML 中 的一種“行爲”使用時,該屬性決定 Flash 影片相對於與其參照的 HTML 內容如何顯示。(有關“行爲”請參閱樣式表 的資料)。Stacking 可以取:
none ——“行爲”不顯示。
replaceall ——“行爲”的顯示取代全部其他元素的內容,包括背景 。
content ——“行爲”的顯示只取代其他元素的內 容。
background ——“行爲”的顯示只取代其他元素的背景 。
below ——“行爲”在所有其他元素內容的下面顯示。
belowflow ——“行爲”以反向 Z 順序顯示在其他元素 的子對象之上,但在該元素主要內容之上。
aboveflow ——“行爲”以正向 Z 順序顯示在其他元素 的子對象之下,但在該元素主要內容之上。
above ——“行爲”顯示在所有其他元素的內容之上。
top ——“行爲”的顯示置於整個頁面內容之上。
例子 :
movie.Stacking = "below"

20.WMode (讀寫)
語法:WMode As String
說明:控件的窗口模式。WMode 可以取: Window —— WMode 屬性的默認值,按 Flash 播放器
典型的方式工作,即在控件的矩形窗口中播放影片,這樣一 般都能提供最快的動畫效果。
Opaque ——使影片不透明。 Transparent ——創建一個透明的影片。如果影片中有
透明的片段,放到這裏時,就可以看到控件下面的背景。但 使用此屬性值,動畫的播放速度可能會慢一些。
例子 :
movie.WMode = "Transparent"

ShockwaveFlash控件詳解(二)---方法與事件(轉)

方法:

下面中的方法不返回值:
1.Back
語法:Back() 
說明 : 影片後退一幀 , 並且停止播放 。 例子 :
movie.Back

2.Forward
語法:Forward()
說明 : 影片前進一幀, 並且停止播放。
例子 :
movie.Forward

3.GotoFrame
語法:GotoFrame(FrameNum As Long)
說明:將影片跳轉到由 FrameNum 指定的幀,並且停止播放。如果所指定的幀還未載入,播放器前進到最後的可用幀並停下,在調用過程中會產生無法預料的後果。最好使用 PercentLoaded 方法來確定是否已載入足夠的影片來執行本方法。參數 FrameNum 是從 0 開始的,這和 Flash 中的 Goto 動作不一樣,它是從 1 開始的。
例子:跳轉到影片的第 20 幀:
movie.GotoFrame 20

4.LoadMovie
語法:LoadMovie(layer As Long, url As String)
說明:將由 url 指定的影片載入到由 layer 指定的層上。
例子:將 movie.swf 載入至 0 層:
movie.LoadMovie 0, "movie.swf"

5.Pan
語法:Pan(x As Long, y As Long, mode As Long)
說明:將一個放大過的影片平移由 x 和 y 指定的距離。 x 和 y 均爲相對值。即控件相對於影片來說平移的距離(你可以想象控件是一個窗戶,影片是我們從窗戶裏看到的放 在外面的佈景, 我們看到窗戶相對於佈景平移了一些距離,那是外面的佈景在動,而窗戶是不動的)。用 mode 參數 來指定 x 和 y 的值是像素還是窗口的百分比,當 mode=0 時座標系以像素爲單位;mode=1 時座標系就以窗口的百分 比來計算。平移並不能超出影片的邊框,也就是說,往一個方向平移最多到達影片的邊緣與控件對齊的程度。
例子:控件相對於影片向左向上各平移 5 個像素(當 然控件不會動 ,是影片向右向下平移了 ):

6.Play
語法:Play()
說明:開始播放影片。
例子:
movie.Play

7.Rewind
語法:Rewind()
說明:倒帶。返回到影片的第一幀。
例子:
movie.Rewind

8.SetVariable
語法:SetVariable(name As String, value As String)
說明:將由 name 指定的 Flash 變量值設爲 value。
例子:
movie.SetVariable "/Form:UserName", "John Smith"
---------------------------------------------------------------------------
事件:

1.FSCommand
語法:ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
說明:在flash中調用fscommand()觸發的事件
參數:
command :代表命令標識
args :代表參數
例子:
Select Case command '這裏可以用 if
'但command多了之後就不好 if 用了
'我是做個示範
Case "command1"

If args = "123" Then

...

Else

...

End If

Case ...

End Select

2.FlashCall
語法:ShockwaveFlash1_FlashCall(ByVal request As String)
說明:可能很少人知道這個事件的用處,其實這個跟 FSCommand 事件是差不多的。與 FSCommand 不同的是,這個事件可以有返回值(下面會談到)
參數是一個XML格式的字符串,格式是
"<invoke name='%s' returntype='xml'><arguments><string>%s</string>< /arguments></invoke>",去查查幫助就知道了。
處理request:標準VB沒有處理XML的庫,你可以自己找支持XML的插件來用。下面就是按照個人需要處理request了。
返回值:
事件處理函數是沒有返回值的,但是flash player提供了一個方法:ShockwaveFlash1.SetReturnValue() 專門傳遞返回值,格式是<string>%s</string>(也可以是別的AS結構,具體看幫助)。
例子:我在這給出tinyxml的例子:
Private Sub ShockwaveFlash1_FlashCall(ByVal request As String)

Dim request_xml As New TiXmlDocument
Dim request_name As String

request_xml.Parse request
request_name = request_xml.RootElement().Attribute("name")

...自己去處理吧

End Sub

3.OnProgress
語法:ShockwaveFlash1_OnProgress(ByVal percentDone As Long)
說明:估計是flash在加載過程中進度改變觸發的吧?
percentDone 則應該是個百分數~
反正我還沒逮住這個事件一次..= =!

4.OnReadyStateChange
語法:ShockwaveFlash1_OnReadyStateChange(newState As Long)
說明:顧名思義,就是 ReadyState 改變時觸發的事件,具體請看上面關於 ReadyState 屬性的說明,我在這就不廢話了....

至於其他事件,比如
GotFocus啦、LostFocus啦,我也不想廢話了...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章