使用HTML5在现代浏览器中嵌入Flash的最佳方式是什么?

5
这是一个很常见的事情,我想应该有一种“好”的方法将Flash干净地嵌入到HTML5中吧?我只对以下浏览器提供支持:FF3、FF4、IE7、IE8、IE9、Chrome和Safari。
我知道有一些JavaScript解决方案,比如SWFObject,但那似乎有点过头了。难道没有一种干净、快速而简单的使用HTML的方法吗?
另外:仅使用<embed>有什么缺点吗?它曾经被W3C弃用,但我了解到它已经回归HTML5。那么为什么不直接使用它,而要费劲地使用<object>呢?
2个回答

3

尝试过 jQuery Tools 吗?

基本上,你需要做的就是:

<div id="clock"></div>

<script>
flashembed("clock", "/media/swf/global/clock.swf");
</script>

一个工作示例可以是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>

<div id="clock"></div>

<script>
flashembed("clock", "http://jquerytools.org/media/swf/global/clock.swf");
</script>

它与jQuery 2.0.3,1.10.2,1.9.0兼容。


我在我的页面中添加了一个指向jQuery源代码的脚本链接和上面的代码(显然是带有工作链接的),但什么也没有发生:我只得到了一个空白页面。我错过了什么吗? - radagast
上面的示例具有最少的标签,以使其正常工作。请将您的页面与之进行比较。 - Parziphal

0

SWFObject是为了动态处理每个浏览器对对象标签的不同解释而创建的。即使在ie9中,我也不知道这种情况有任何真正的变化,它仍然需要用户激活一个Active-X对象。

我仍然喜欢SWFObject,因为它可以强大而直接地处理Flash变量:

var flashvars   = {
    filePath:   "somePath",
    verbose:    "true"
};

var params  = {
    quality:    "high",
    wmode:  "opaque",
    menu:   "false",
    base:   "/flash/home_page/"
};

var attributes  = {
    id:     "flashContent"
};


    swfobject.embedSWF(
        "../flash/home_page/home.swf",
        "flashContent",
        "570",
        "325",
        "10.0.0",
        "../frameworks/swfobject/expressInstall.swf",
        flashvars,
        params,
        attributes,
        outputStatus
        );

我同意,如果有一种“更加”轻量级的替代方案会更好,但是在我看来,方便性弥补了任何额外的负荷。

干杯


好的,直到有更好的答案出现,我选择了SWFObject。 - Chuck Le Butt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接