我有一個快速介紹,我希望<body>
在介紹完成後立即加載。我怎樣才能做到這一點?Flash動畫完成後加載正文
我不想在動畫完成後重定向到新的URL,我希望它位於同一頁面上。
我可以使用jQuery代碼捕獲的actionscript3返回一個變量,或者jQuery可以在動畫完成時檢測它自己嗎?
我有一個快速介紹,我希望<body>
在介紹完成後立即加載。我怎樣才能做到這一點?Flash動畫完成後加載正文
我不想在動畫完成後重定向到新的URL,我希望它位於同一頁面上。
我可以使用jQuery代碼捕獲的actionscript3返回一個變量,或者jQuery可以在動畫完成時檢測它自己嗎?
1)Flash intro:糟糕的做法,尤其是因爲如此多的用戶正在使用不帶Flash的設備進行瀏覽,或者完全禁用了Flash。 Flash也完全破壞了搜索引擎的結果。 #1推薦:如果您絕對必須瞭解如何在HTML5/CSS3中製作動畫,但介紹屏幕通常會對可用性造成極大的傷害。使用它們的唯一真正藉口是如果您嘗試前置資源(例如遊戲的圖像精靈或儀表板的數據),則向用戶提供某種反饋。
2)您不能在頁面的<body>
之前加載Flash。它只是不起作用。然而,鑑於這一點,你可以把一個結構是這樣的:
<body>
<div id="flashObj"><!-- object for Flash --></div>
<div id="mainContent"><!-- rest of your page --></div>
</body>
然後,你可以從你的Flash動畫的結尾調用javascript函數使用ExternalInterface的對象(見http://www.kirupa.com/flash/calling_javascript_flash_using_as3.htm的教程),但要注意有幾個瀏覽器仍然存在該對象的問題,所以您的跨平臺可用性進一步下降。
從本質上講,在你的HTML,你會:
<style>
#mainContent { display:none; }
</style>
<script type="text/javascript">
function startMainContent(){
var flash = document.getElementById("flashObj");
var main = document.getElementById("mainContent");
if(flash && main){
flash.style.display == "none";
main.style.display == "block";
}
}
</script>
然後在你的ActionScript,動畫完成後,你會加入類似:
ExternalInterface.call("startMainContent()");
假設ExternalInterface的正常工作,並且您已經遵循Adobe的文檔在您的<object />
標記中設置正確的標誌,以允許從您的Flash對象訪問Javascript,這應該有所斬獲。
爲Adobe官方指南ExternalInterface的顯示方式:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf626ae-7fe8.html#WS2db454920e96a9e51e63e3d11c0bf69084-7f31
嗨,老兄,我笑我的傻中的方式回答這個問題,但你可以這樣來做。你知道你的介紹播放多少秒嗎?如果是這樣做: 假設你的介紹是10秒:
$(document).ready(function() {
$("INTRO_DIV").delay(10000).hide();
$("body").delay(10500).fadeIn();
});
我加500毫秒的時間,使您的介紹可以正常完成。
不是一個好主意......不能保證動畫會在延遲開始前加載...... Flash「時鐘」不一定與DOM「時鐘」同步。當Flash完成後調用JavaScript函數更安全。 –
好吧,我只是給你想法。 – Heart
這不會真的幫助你的問題,但我的建議是溝通閃光燈介紹。現在不再是90年代末了。 –
我同意。但我的客戶希望標誌逐漸出現,亮度,對比度和模糊(可能還有火焰)等,閃光燈似乎是唯一的方法。 – soundswaste
如果你是他們的開發者,你應該告訴他們,這個想法會導致他們網站的大規模跳出率和較少的訪問者,因此投資回報率較低。 –