使用HTML5为现代浏览器嵌入Flash的最佳方法?

时间:2011-05-10 14:39:46

标签: html css flash html5

这是一个很常见的事情,我想必须有一个“好”的方式将Flash干净地嵌入到HTML5中?我只对支持以下浏览器感兴趣:FF3,FF4,IE7,IE8,IE9,Chrome和Safari。

我知道有一些像SWFObject这样的Javascript解决方案,但这看起来有些过分。是不是只有一种干净,快速和简单的方法使用HTML?

此外:使用<embed>是否有任何不利之处?它之前已经被W3C折旧了,但我知道它已经回归到HTML5了。那么为什么不使用它而不是使用<object>

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

创建SWFObject是为了动态处理每个浏览器解释对象标记的不同方式。我不知道这种情况的任何真正的变化,即使使用ie9,仍然需要用户激活active-x对象。

我仍然更喜欢使用SWFObject来实现闪存变量的强大而直接的处理:

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
        );

我同意,如果有一个“更多”的轻量级替代品会很“好”,但是方便可以弥补所需的额外负载,imo。

欢呼声