我正在尝试使用Google Swiffy将一些简单的Flash转换为HTML5。我需要结果输出具有透明背景。我在其他网站上阅读并here on SO从HTML中删除(“backgroundColor”: - 65536,)文本应该有效。但是,对我而言,这只会将背景变黑。
也许Swiffy转换器已经改变,这个解决方案不再适用。有没有人有任何其他选择。
(我正在使用Safari和Mobile Safari进行测试)
答案 0 :(得分:12)
如果你需要使背景透明,就像你所做的那样 wmode =“transparent”属性,可以插入以下代码 Swiffy输出中的片段,就在调用stage.start()之前:
stage.setBackground(空);
您还可以使用任何有效的CSS颜色规范替换null 字符串,以覆盖从中定义的背景颜色 转换。
https://www.google.com/doubleclick/studio/swiffy/faq.html
为我工作 祝你好运
答案 1 :(得分:6)
这是使用5.2运行时为我工作的另一个CSS技巧。我将class="swiffy-transparent"
添加到#swiffycontainer
div并应用了此css:
.swiffy-transparent svg g > g > rect {
fill: transparent !important;
}
答案 2 :(得分:4)
比你想象的容易,只在你的html脚本中识别这一行:
<script>
var stage = new swiffy.Stage(document.getElementById('swiffycontainer'),
swiffyobject);
stage.start();
stage.setBackground(null); <!--and only have to add this line-->
</script>
答案 3 :(得分:2)
对于Swiffy服务或它们输出的* .swf.html的最简单用法(假设您在Web应用程序的某处使用jQuery):
setTimeout(function() {
$('#swiffycontainer *:first-child').css("background", "transparent");
}, 100);
延迟是等到Google将他们的风格写入容器div。这是一个糟糕的解决方案,因为如果你不管理div的表示,它将导致闪烁;但是,我想大多数开发人员都在管理swiffyobject并创建自己的API来控制它。
答案 4 :(得分:2)
尝试使用background-color
在CSS中设置transparent
到!important
。这对我有用。
#swiffycontainer div {
background-color: transparent !important;
}
答案 5 :(得分:0)
很抱歉回答我自己的问题,但我现在发现,在当前版本的Swiffy运行时,Google已经破解了在Swiffy输出中删除“backgroundColor:nnnn”的方法。如果您还通过更改:
恢复到以前版本的运行时SRC = “https://www.gstatic.com/swiffy/v5.2/runtime.js”
到
SRC = “https://www.gstatic.com/swiffy/v5.1/runtime.js”
在文件的顶部,您会发现透明背景正常工作。
编辑:Michael Prescott指出,由于Swiffy转换器版本与运行时之间不匹配,此解决方案无法可靠运行。不依赖于5.1导出器存在的替代解决方案是建立在此处建议的其他解决方案上。尝试将以下函数添加到脚本中。它轮询以查看Swiffy对象何时安装了它的首选背景颜色,然后它将替换它。(function() {
var firstNode=document.getElementById('swiffycontainer').childNodes[1];
//firstNode.style.visibility = "hidden";
if (firstNode.style.background=="") {
setTimeout(arguments.callee, 10);
} else {
firstNode.style.background = "none";
//firstNode.style.visibility = "visible";
}
})();
当Swiffy首次设置稳固背景然后被替换时,这似乎并没有出现故障。但是,为了更加确定,您可以启用注释掉的行来隐藏第一个节点,直到设置了正确的透明度。
最好的问候