6

我使用 Google Swiffy 将 Flash SWF 文件转换为 HTML5。

这在 Firefox 中运行良好。

但是,在 IE8 中,我收到以下错误:

'swiffy' 未定义

'stage' 为 null 或不是对象

在 IE 中,如果您访问 Google Swiffy 库部分 ( http://www.google.com/doubleclick/studio/swiffy/gallery.html ),然后单击任何示例,您将收到类似的错误(或者,至少,我愿意)。所以也许这是一个现有的问题。

我还会联系 Google 看看是否有解决此问题的方法。

这是代码片段。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Swiffy output</title>
<script src="http://www.gstatic.com/swiffy/v3.5/runtime.js"></script>
<script>swiffyobject = {"tags":
[{"id":1,"height":194,"width":609,"data":"data:image/jpeg;
base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS

...there's a lot of converted code, most of it looks like the gibberish above...

</script>
</head>
<body style="overflow:hidden;margin:0;">

<script>var stage = new swiffy.Stage(document.body, swiffyobject);</script>
<script>stage.start();</script>

</body>
</html>

我确实开始使用 Canvas 自己编码来转换 Flash 文件。我可能会继续这样做。我只是赶时间完成这项工作,并希望解决这些错误。

谢谢。

斯蒂芬

(顺便说一句,我可以附上一个文件吗?代码真的很长。)

4

3 回答 3

3

这是因为 IE8 不支持 HTML5 Canvas

您可以使用excanvas库,但动画效果很糟糕。excanvas 使用 VML 来模拟 canvas 命令并假装它可以在 IE7/8 上运行

excanvas 自 2009 年以来一直没有更新,如果你想使用 Canvas,我真的建议不要支持 IE8。SVG/VML 解决方案可能会更好,这取决于您在做什么。

于 2012-02-07T23:23:09.913 回答
1

这是解决方案:下载 swfobject.js 并将此文件保存在文件夹“脚本”中。

将此代码放在标题部分:

<script type="text/javascript" src="http://www.mysite.com/scripts/swfobject.js"></script>

在 swiffy 文件中放这个(下面的 swiffy 脚本):

<script type="text/javascript">swfobject.embedSWF("http://www.mysite.com/flash_files/myflash.swf", "swiffycontainer", "638", "500", "8.0.0", "myflash.swf", {}, {menu:"false", scale:"noscale", wmode:"transparent"}, {} ); </script>
于 2013-04-05T19:25:30.980 回答
1

以上(使用swfobject.js)是一个很好的解决方案!基本上在 Flash 支持的 env 和 HTML 回退中使用 swf 以防其他情况。

于 2013-06-21T11:46:10.623 回答