目前分類:Flash (5)

瀏覽方式: 標題列表 簡短摘要

問題:

今天本想用 Flash 圖片來作一個圖案的連結,於是在圖案的按鈕元件上加上了 ActionScript 的動作,如下

on ( release ) {getURL("/searchfull.php");}

結果是怎麼試,怎麼點就是沒有動作!於是修改了一下目標框架(Frame) 試看看:

on ( release ) {getURL("/searchfull.php","_blank");}

心想該不會目標框架是必填吧!於是改上了原網頁 _self 自身框架:

on ( release ) {getURL("/searchfull.php","_self");}

結果又死了!試呀試訝!只有 IE 是可以動作的,自己最愛的 Chrome, Firefox 都死了!最後爬了一堆垃圾文才找到原因!
解決:

聽說這是發生 Flash Player 9 之後我猜可能是基於安全性的理由,除非網頁端有允許,否則 Flash 對 Script 作存取的動作,也無法透過 Javascript 達成連結的作用,因此才會造成連結無效。所以只要將網頁端設定為允許存取Script 就可以解決了呀!

HTML Code
  1. <objectclassid="clsid:d27cdb6 ....>
  2.   <param ...>
  3.   <param name="movie" value="http://otherdomain.com/exampleContent.swf">
  4.   <param name="allowScriptAccess" value="sameDomain"> 這一行改掉!
  5.   <param name="allowScriptAccess" value="always"> 新增這一行!
  6.   <param ...>
  7.   <embedtype="application/x-shockwave-flash"src=" ...allowScriptAccess="always"></embed> 加上粗體的部份!
  8.   </object> 

 

轉載自:http://hero.heyxu.com/neil/PT0010B00/315

相關資料:http://www.dreamdu.com/xhtml/tag_param/

文章標籤

Apries 發表在 痞客邦 留言(0) 人氣()

無論是 CSS 下拉式目錄,或是 Javascript 製作出來的彈出式清單,一旦遇到 Flash 時,就被 Flash 遮蓋住,這個問題困擾了不少設計人員,原則上有兩種解決方法,一種是在圖層中使用 IFRAME,另一種則是改變 Flash 嵌入方式。

這裡談的是第二種方式,以swfobject方式嵌入,語法為:

<script type="text/javascript" src="images/swfobject.js"></script>
<div id="flashcontent">無法播放 Flash 時替代的文字內容</div>
<script type="text/javascript">
     var fo = new FlashObject("images/flash.swf", "mymovie", "200", "200", "7", "#ff00ff");
     fo.addParam("wmode", "transparent");
     fo.write("flashcontent");
</script>

步驟是先連結 swfobject.js 這個檔案,檔案的官方下載位置是:

swfobject_1.4.zip(40K)

壓縮檔中檔案很多,是範例及說明,要用到的只有 swfobject.js一個檔案。

然後宣告一個放置 flash 的區塊,這個例子的識別名稱為 flashcontent,接下來,建立 FlashObject 物件,語法是:

var fo=new FlashObject(swf檔,識別元,寬度,高度,Flash版本,背景色);

如果需要加其他屬性,例如透明,則使用 fo.addParam 加入,語法為:

 fo.addParam("wmode", "transparent");

最後,把物件寫到 flashcontent 區塊中,語法為:

fo.write("flashcontent");

如此就完成了,原文刊載於:

http://www.adobe.com/devnet/flash/articles/swfobject.html

什麼情況造成的?

原因和網頁元件的特性有關,如果要把網頁元件分類,其中有一種分類法為:可定位(Positional)和不可定位(non-Positional),什麼意思呢?網頁中呈現的元件,例如段落、表格等,是由 HTML 創建出來的,但部份我們熟知的元件,例如表單,卻不是由 HTML 創建出來,而是作業系統本身建立,HTML 只不過是叫過來用(call),類似的元件還有 Java Applet、ActiveX、Flash 和一些 plug-in等。

講白一點,HTML 是一個二維空間,只上下左右的概念,有了 CSS 之後,開始有三度空間的概念,但,前述提到的這些元件,既非擺在二維空間裡,也不是擺在三度空間中,到底擺那?天知道!所以 z-index 失效,基本上,這應屬於瀏覽器的問題,這裡有一篇專文論述:

http://www.webreference.com/dhtml/diner/seethru/index.html

同樣的情況,還常見於下拉表單突破彈出選單,但這個問題,瀏覽器本身已經解決了,像 FireFox 上就不會發生,至於 IE,我就沒空想知道他們改正沒。

這算是個老問題了,199X 年時就被廣泛討論,最主要是用 Javascript 製作的動態下拉功能表被表單中的下拉清單穿透造成的,當時急壞了一些人,後來發現,用 IFRAME 這個不可定位元件來以毒攻毒可以解決這問題,原理就是把 IFRAME 放到圖層中,如此一來,管你底下是表單的下拉清單還是 Flash,一律可以蓋過去。作法就有點囉嗦,這裡就不提了。

 

卜維丰 6/3 07'


以上是轉載並節錄自卜維丰 的blog http://audi.tw/Blog/webDesign/Flash.swfobject.js.asp

文章標籤

Apries 發表在 痞客邦 留言(0) 人氣()

有時候需要在flash上蓋一張圖片時,會用到 position:absolute 的技巧,卻發現圖片還是被flash蓋住了,原來是在默認的情況下,Flash應用程序都是優先於其它HTML標籤,因此Flash會顯示在最上方。

解決這個問題的方法

只要在<OBJECT> </ OBJECT>內加上<param name="wmode" value="Opaque"。/>

上述的方式主要針對 IE 

其它瀏覽器則需要另外在<embed>裡新增 wmode ="Transparent"

文章標籤

Apries 發表在 痞客邦 留言(0) 人氣()

今天放上SWF後發現在火狐瀏覽該網頁時下方會多出一片空白

經由阿狗大神查詢

發現可能是因為「Object」標籤造成的問題

以下是查詢的結果:

有時候Firefox會把<Object>視為「行內(inline)」元素,也就是當作一般的文字來看待;既然是文字,就會有文字應該有的高度、大小等實體空間的存在。

如果我們把行高與字體大小皆設為0也可解決這個問題!不過,還有另一個方法,就是把Object的display屬性設成是區塊(block),只要用CSS指定如下即可:

object{
display:block;
}


設為區塊屬性(display:block)之後,該區域在Dreamweaver 8.0的設計模式中會產生雙倍高度的怪異現象…也就是明明只放了一個Flash元件,但Dreamweaver看起來卻是兩個一樣的東西上下黏在一起!


Data From http://benlibra.blogspot.com/2009/04/flash.html

文章標籤

Apries 發表在 痞客邦 留言(0) 人氣()

 

var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);

 

文章標籤

Apries 發表在 痞客邦 留言(0) 人氣()