我已使用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文件。我可能会继续它。我只是按时间完成这项工作,并希望解决这些错误。
感谢。
斯蒂芬
(顺便说一句,我可以附加文件吗?代码真的很长。)
答案 0 :(得分:3)
这是因为IE8不支持HTML5 Canvas
您可以使用excanvas库,但动画很糟糕。 excanvas使用VML模拟画布命令并假装它在IE7 / 8上运行
excanvas自2009年以来一直没有更新,如果你想使用Canvas,我真的建议不要支持IE8。 SVG / VML解决方案可能会更好,具体取决于您正在做什么。
答案 1 :(得分: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>
答案 2 :(得分:1)
以上(使用swfobject.js)是一个很好的解决方案! 基本上在Flash支持的环境中使用swf,在其他情况下使用HTML后备。