點按以啟用並使用這個控制項-解決. flash
AC_RunActiveContent.js AC_ActiveX.js flashobject.js
參考:
Adobe- eveloper Center : 因應宣佈的瀏覽器變更為具備動態內容的網站做好準備:
http://www.adobe.com/tw/devnet/activecontent/articles/devletter.html
[教學] Flash 出現 [點按以啟用並使用這個控制項] 的訊息 (上):
http://blog.pixnet.net/Galaxy1981/post/5442038
[教學] Flash 出現 [點按以啟用並使用這個控制項] 的訊息 (下):
http://blog.pixnet.net/Galaxy1981/post/5446323
MyChat數位男女-解決FLASH於IE6會出現「請按一下來啟動並使用此控制」:
http://bbs-mychat.com/read.php?tid=601438
避免專利爭議 微軟更新IE:
http://taiwan.cnet.com/news/software/0,2000064574,20104762,00.htm
官方Adobe ActiveContent 解決方案
Adobe 說明網頁 http://www.macromedia.com/devnet/activecontent/articles/devletter.html
更新的瀏覽器會提示使用者按鍵,然後才會顯示使用嵌入 HTML 檔案的 <object>、<embed> 或 <applet> 標籤編碼的動態內容。許多人將需要修改網站以因應這些瀏覽器變更。
但是,使用外部指令碼檔(例如 JavaScript)產生的標籤之 HTML 網頁,例如使用複雜 Flash 偵測指令碼的網站,則可正常運作不受改變。
解決方案就是以這個方式將外部JavaScript嵌入flash。
首先下載官方ActiveContent樣本檔:http://download.macromedia.com/pub/developer/activecontent_samples.zip
Scripts資料夾內的2個關鍵用到的js檔案:AC_RunActiveContent.js、AC_ActiveX.js
1.使用時在網頁<head>...</head>標籤內中加入js,js檔請填寫實際路徑。
<script src="AC_RunActiveContent.js" type="text/javascript"></script>
可自由加入CSS:邊距為零,背景為透明。
<style>body{margin:0px; background-color:transparent}</style>
接著在flash顯示處加入:
<script type="text/javascript">
AC_FL_RunContent( "codebase","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0","width","924","height","122","src","xxx","quality","high","pluginspage","http://www.macromedia.com/go/getflashplayer","movie","xxx","wmode","transparent" ); //end AC code
</script>
注意以上 xxx 的部分,該 xxx 為 SWF 的檔名,在AC_FL_RunContent裡頭「不需」填寫 .swf 副檔名。
故原本實際的SWF為 xxx.swf 時,只需寫成 xxx 即可AC_FL_RunContent 的實際寫法很單純,就是參數對應內容。
codebase 對應 http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0
width 對應 924 (請改成實際的SWF寬度)
height 對應 122 (請改成實際的SWF高度)
quality 對應 high
wmode 對應 transparent
src 及 movie 都對應到檔名,「不需」填寫 .swf 副檔名。
2.但是有少數網站訪客會在瀏覽器中停用 JavaScript。
所以上述建議方式不適用這些使用者,而他們將完全看不到您的內嵌內容。
因此我們還需要加入原始<object>或<embed>標籤放在<noscript>當中,
<noscript>標籤是提供容錯替代程式碼的標準標籤,適用於停用JavaScript的使用者。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="924" height="122">
<param name="movie" value="xxx.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="xxx.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="924" height="122" wmode="transparent"></embed>
</object>
當停用JavaScript的使用者使用更新的瀏覽器中造訪包含類似上述程式碼的網頁時,
還是需要按下內容才能啟動它。之後就可以像以前一樣地與內容互動。
其他動態內容類型的解決方案(AC_ActiveX.js)
在本文章隨附的範例檔中,我們還加入了名為 AC_ActiveX.js 的 JavaScript 檔。使用上述方式,您不需要此指令碼就可顯示 Flash 或 Shockwave 內容。但是,在網頁中使用其他動態內容類型的開發人員則可使用此指令碼來顯示其他內容類型,而不需讓使用者按鍵來啟動內容。您可將它視為適用多種內容的一般指令碼。您可依前述步驟,以類似使用 AC_RunActiveContent.js 的方式來運用此指令碼。
依 Flash/Shockwave 的方式,取代 <object> 和 <embed> 程式碼,依您的內容來修改屬性和值配對:
<script src="AC_ActiveX.js" type="text/javascript"></script>
<script type="text/javascript">
AC_AX_RunContent( 'classid','clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFB','width','150','height','100','src','fakefile.foo' );
</script>
非官方解決方案 Flash Object
非官方解決方案有 BUG ... 在更新網誌的時候發現在使用這個 CODE 的同一個頁面使用4個以上(有時候是5個...)
會出現不能顯示的情況... 建議使用多個 FLASH 物件不要使用此方案。
來源:FLASH OBJECT:http://blog.deconcept.com/swfobject
(1) 首先下載js檔,http://blog.deconcept.com/swfobject/swfobject.js
(2) 使用 script 標籤將 flashobject.js 引用
(3) 準備一個 div 區塊,並定義好 id
(4) 撰寫 JavaScript 將 Flash 秀出(利用FlashObject 物件定義SWF參數,並使用write方法將Flash填入div區塊當中)
原始語法片斷如下:
<script type="text/javascript" src="flashobject.js"></script>
<div id="flashcontent">請安裝最新 flash 播放器.</div>
(此段文字會被Flash物件取代,如無法顯示flash將會出現此段文字!)
<script type="text/javascript">
var so = new SWFObject("xxx.swf", "FLASH", "924", "122", "6", "high");
so.addParam("wmode", "transparent");
so.write("flashcontent");
</script>
codebase 對應 Flash版本,如"6.0.65"或只要填主版本"6"(格式為majorVersion.minorVersion.revision)
width 對應 924 (請改成實際的SWF寬度)
height 對應 122 (請改成實際的SWF高度)
quality 對應 high
xxx.swf 對應 檔名。
一樣可加入<noscript>給停用JavaScript的瀏覽器。
那個變數so不知能不能改,因為後來官方那個成功了,這就不太想研究了,為了M$害的現在程式碼要寫那麼長,真是不值得阿!
留言列表