任意谷歌Swiffy画布大小/关闭屏幕渲染

时间:2015-07-22 16:34:14

标签: javascript html html5 canvas google-swiffy

我使用Swiffy渲染到隐藏的画布上,以便我可以获取结果并在其他地方使用它。我遇到的问题是,当我为Swiffy调整容器div的大小时,它不会使实际画布大于可用的视口大小。如果我将Swiffy div的尺寸设置为大于视口,则画布只会变得与视口一样大 - 它不想将画布的任何部分放在屏幕外。

我确定这是为了提高效率,如果它在正常情况下没有理由提供某些东西,但我需要让Swiffy一直渲染它,无论我想要什么尺寸

此外,如果Swiffy容器div没有附加到DOM,Swiffy就会拒绝做任何事情。 (强制画布的宽度和高度为0)。

有没有办法解决这个问题,而不必深入研究(混淆)Swiffy客户端运行时并修改它?如何将Swiffy渲染为大于视口大小的渲染?

编辑:我实际上可以通过将window.innerWidth更改为我想要的任何内容来欺骗swiffy渲染大于视口。这虽然是一个非常难看的黑客,我讨厌覆盖它,因为它会导致很多问题。

3 个答案:

答案 0 :(得分:4)

如果你的swiffy运行时版本是7.3,你可以直接破解js。

只需删除或评论" b.xj(c);"在g.Tp()函数中。我不关心屏幕外渲染的任何优势。至少,它现在有效。

我认为这是一个严重的错误。

请注意,它在iframe中很不错,不需要破解。

答案 1 :(得分:1)

我能弄清楚如何做的唯一方法是编辑Swiffy运行时并用我想要的任何大小替换window.innerWidth和window.innerHeight的所有实例。

没有任何不良影响,我可以看到,虽然这无异于理想。

如果有人提出更好的解决方案,我绝对会接受它。

答案 2 :(得分:0)

如果我正确地解决了问题,为了渲染大于原始的swiffy,你可以在div中加入swiffy并进行缩放

要从闪存中快速限制其原始输出比例,您可以将其放在iframe中