Произвольный рендеринг 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