Flash动画完成后加载主体



我有一个闪存介绍,我希望<body>在介绍完成后立即加载。我该怎么做?

动画完成后,我不想将其重定向到新的URL,我希望它在同一页面上。

我可以使用jQuery代码捕获的actionscript3返回变量,还是可以单独检测动画完成?

1)Flash Intro:糟糕的练习,尤其是因为许多用户现在正在使用不带Flash或完全禁用Flash的设备。Flash还完全破坏了搜索引擎结果。#1建议:如果绝对必须,请学习如何在HTML5/CSS3中进行动画,但是介绍屏幕对总体上的可用性非常有害。使用它们的唯一真正的借口是如果您想尝试前载资产(例如,游戏的图像精灵或仪表板的数据)。

2)在页面的<body>之前,您无法加载闪光灯。它只是不起作用。但是,鉴于这一点,您可以将这样的结构放在一起:

<body>
    <div id="flashObj"><!-- object for Flash --></div>
    <div id="mainContent"><!-- rest of your page --></div>
</body>

然后,您可以从Flash Animation的末尾调用JavaScript函数(请参阅http://www.kirupa.com/flash/calling/calling_javascript_flash_flash_usis_as3.htm for Dutorial for Duteorial)使用外部界定对象,但是请注意,有几个浏览器该对象仍然存在问题,因此您的跨平台可用性更进一步。

本质上,在您的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()");

假设外部接口正常工作,并且您已遵循Adobe的文档来设置<object />标签中的适当标志以启用从闪存对象访问JavaScript,这应该可以解决问题。

嘿,我在以愚蠢的方式回答这个问题,但您可以这样做。您知道您的介绍播放多少秒钟吗?如果是这样做:假设您的介绍为10秒:

$(document).ready( function() {
$("INTRO_DIV").delay(10000).hide();
$("body").delay(10500).fadeIn();
});

我添加了500毫秒,以便您的介绍可以正确完成。

最新更新