我使用Swiffy渲染到隐藏的画布上,以便我可以获取结果并在其他地方使用它。我遇到的问题是,当我为Swiffy调整容器div的大小时,它不会使实际画布大于可用的视口大小。如果我将Swiffy div的尺寸设置为大于视口,则画布只会变得与视口一样大 - 它不想将画布的任何部分放在屏幕外。
我确定这是为了提高效率,如果它在正常情况下没有理由提供某些东西,但我需要让Swiffy一直渲染它,无论我想要什么尺寸
此外,如果Swiffy容器div没有附加到DOM,Swiffy就会拒绝做任何事情。 (强制画布的宽度和高度为0)。
有没有办法解决这个问题,而不必深入研究(混淆)Swiffy客户端运行时并修改它?如何将Swiffy渲染为大于视口大小的渲染?
编辑:我实际上可以通过将window.innerWidth更改为我想要的任何内容来欺骗swiffy渲染大于视口。这虽然是一个非常难看的黑客,我讨厌覆盖它,因为它会导致很多问题。
答案 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中