Произвольный рендеринг Google Swiffy Canvas Size / Off Screen

Я использую Swiffy для рендеринга на скрытый холст, чтобы я мог взять результат и использовать его в другом месте. Проблема, с которой я сталкиваюсь, состоит в том, что, когда я изменяю размер контейнера div для Swiffy, он не сделает фактический холст больше, чем доступный размер области просмотра. Если я установлю размеры элемента Swiffy больше, чем область просмотра, то холст станет только таким же большим, как окно просмотра - он не хочет выводить какую-либо часть холста за экран.

Я уверен, что это для эффективности, нет никакой причины для рендеринга чего-либо, если это нормально, но мне нужно, чтобы Swiffy рендерил это все время, в любом размере, который я хочу.

Кроме того, Swiffy просто отказывается что-либо делать, если контейнерный элемент Swiffy не подключен к DOM. (Заставляет холст иметь ширину и высоту 0).

Есть ли способ обойти это без необходимости копаться в (обфусцированном) времени выполнения клиента Swiffy и изменять его? Как я могу обмануть Swiffy в рендеринге больше, чем размер области просмотра?

Изменить: я действительно смог обмануть в рендеринге больше, чем область просмотра, изменив window.innerWidth на все, что я хочу. Это действительно ужасный хак, и я ненавижу перезаписывать это, потому что это вызывает много проблем.

3 ответа

Решение

Если у вас версия быстрой версии 7.3, вы можете взломать js напрямую.

Просто удалите или прокомментируйте "b.xj(c);" в функции g.Tp(). Меня не волнует какое-либо преимущество закадрового рендеринга. По крайней мере, сейчас это работает.

Я думаю, что это серьезная ошибка.

Обратите внимание, что это хорошо в iframe, не нужно взламывать.

Единственный способ понять, как это сделать, - отредактировать среду выполнения Swiffy и заменить все экземпляры window.innerWidth и window.innerHeight на любой нужный мне размер.

Никаких плохих побочных эффектов, которые я мог видеть, хотя это явно не идеально.

Если кто-то придумает лучшее решение, я его обязательно приму.

Если я правильно понял проблему, для рендеринга больше оригинального swiffy вы можете поместить swiffy в div и масштабировать его

Чтобы можно было быстро ограничить исходный масштаб вывода, как от вспышки, вы можете поместить его в iframe

Другие вопросы по тегам