其實,這只是在同一個地方放了兩個banner,一個大的、一個小的,播完大banner以後再留下小banner;我們可以用兩個div分別置放大、小banner,然後把播完廣告的大banner在畫面中刪除!
或者,也可以在同一個swf檔裡做兩個banner,在播完大banner之後,讓時間軸跳到小banner的地方,不讓別人看到原來大banner的畫面。
不過,這些都不是困難的問題,我們比較好奇的是,是什麼原因讓大banner播完後,Firefox竟然忘不了這個大banner曾經播放過的事實,因此留下原本大banner的「透明」區塊在畫面之中?!也許這層透明區塊不會對畫面造成影響,但另一個問題是…區塊底下的東西竟然無法點選、連結?!這個可麻煩了!真不知道該怎麼辦才好…
沒關係,感謝Javascript和CSS的強大功能,因為我們可以在Flash中呼叫Javascript功能,讓Javascript使用CSS設定,讓指定的Div消失於無形~!哈哈哈!!!
首先我們要讓Flash在特定的時間或事件之中觸發Javascript機制,例如播完影片之後,或者因為我們已經看過這個畫面,不想再看了!於是,我們可以在時間軸中加上底下的Actionscript(AS2):
getURL("javaScript:hideItem('hideThisDiv');","");接著在html加入底下這段Javascript即可讓Flash自動隱藏起來:
//讓Javascript知道要隱藏哪個Div
<script type="text/javascript">
<!--
function hideItem(divID) {
hiddenID = document.getElementById(divID);
hiddenID.style.display = "none";
}
//-->
</script>
既然Javascript是用CSS的方式將Div隱藏起來(display:none;),我們同樣也可以把它叫出來,只要將「none」改為「block」(或其它非none的參數應該都可行):
hiddenID.style.display = "block";
6 則留言:
請問有範例檔可以參考嗎??感謝您的分享
很遺憾,並沒有範例檔耶!因為這是我工作上曾經遇到過的問題,我只是把它記下來提醒自己,同時也給其他遇到類似問題的人做參考。
如果你有遇到同樣的問題也可以提出來討論唷!
謝謝你提供的好用的做法,但是可能是我對程式碼不熟,所以怎麼試都沒有成功。
所以是更改 ('hideThisDiv') 跟 (divID) 成自己在網頁裡面的DIV代碼嚕?
hideThisDiv指的是你要Flash隱藏的DIV名稱。divID是參數值的名稱,維持一致即可;其目的是告訴javascript將要放一個東西進來,然後它會照你給的指令作用。
換言之,divID不必改,但「hideThisDiv」一定要指定欲隱藏的DIV名稱。
Javascript的程式片段中有個「getElementById」的指令,它的目的是取得DIV的ID名稱,所以你不需在Flash的hideThisDiv前面加上井號(#)。
謝謝您!
張貼留言