我有一个快速介绍,我希望<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
如果你是他们的开发者,你应该告诉他们,这个想法会导致他们网站的大规模跳出率和较少的访问者,因此投资回报率较低。 –