網頁或者在 window form 中插入 flash 影片形成動態效果是很常用的動態效果顯示方式,但是如果網頁或者 form 是分層顯示的結構,怎樣才能發 flash 的背景呢?
今天 CG 解決一個小問題,關於控制 flash 影片在容器中播放時的背景透明顯示問題,相信大家在做網頁或者做 winform 的時候肯定遇到過,大家不需要刻意去修改 flash 影片的背景為透明因為設置透明的話在 flash 控件中顯示效果是一樣的,這裡告訴大家一個方法設置 flash 容器(控件)的 Wmode 屬性即可
下面是 Wmode 的三種不同參數:
- Window: 默認的使用模式,也是 adobe 官方手冊中說明渲染速度最快的模式,但是這種
模式使用的是獨立於容器的顯示方式,即窗體 window 方式,使用類似我們習慣的窗體的作為
獨立的打開方式,因此這樣的模式下,flash 影片實質上是一個可以獨立控制的 flash 播放窗體
,而且默認的背景使用的是不透明,這就是為什麼容器顯示的時候是分離的狀態,這個窗體由
操作系統管理 - Opaque: 這是一種與 window 對應的無窗體模式,通常接受所在 DOM 管理,WEB 中通常
可以當一個 DIV 層來使用,使用也很靈活,不過這種模式使用的是絕對定位,一般是用嵌套
方式來控制顯示位置,從而保證顯示位置正確,通常在 web 中使用的比較多 - Transparent: 這是解決問題的模式,是一種特別的顯示模式,即背景透明,而且是無視
原本的 flash 動畫的背景設置,用於在多層顯示效果中使用,不過這種模式官方說明是渲染
速度最慢的模式,是一種特殊的 Opaque 模式,而且要求的 flash 版本較高,大家使用的時
候要注意。
使用方法:
WinForm:直接在 AXShockWaveFile 控件的 Wmode 屬性中設置相應的模式字符串即可,
如果大家用的 VC++ 的話,建議使用控件的 setWmode 方法即可,所有的編程語言都支持
此方法
web:如果使用的是 object 顯示方法的話可以再顯示參數中添加一個參數即可,參數如下
如果使用的embed方法的話,可以考慮在調用的參數中增加wmode參數即可在調用兩種方法代碼如下