2

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

我确信这是为了提高效率,如果它通常不在屏幕上,则没有理由渲染它,但我需要让 Swiffy 一直渲染它,无论我想要什么大小。

此外,如果 Swiffy 容器 div 未附加到 DOM,则 Swiffy 将拒绝执行任何操作。(强制画布的宽度和高度为 0)。

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

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

4

3 回答 3

4

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

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

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

请注意,它在 iframe 中很好,无需破解。

于 2015-08-26T07:32:14.757 回答
1

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

我看不到任何不良影响,尽管这显然不太理想。

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

于 2015-07-26T04:05:57.897 回答
0

如果我正确地解决了问题,为了渲染比原始 swiffy 更大的内容,您可以将 swiffy 放入 div 并对其进行缩放

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

于 2015-08-13T16:48:59.543 回答