2015-07-22 4 views
2

Я использую Swiffy для визуализации на скрытый холст, чтобы я мог взять результат и использовать его в другом месте. Проблема, с которой я сталкиваюсь, заключается в том, что когда я изменяю размер контейнера div для Swiffy, он не сделает фактический холст больше, чем доступный размер видового экрана. Если я установил размеры Swiffy div больше, чем область просмотра, тогда холст будет только размером с область просмотра - он не хочет помещать какую-либо часть холста за кадром.Произвольный Google Swiffy Canvas Size/Off Screen Rendering

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

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

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

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

ответ

4

Если ваша плавная версия исполнения составляет 7,3, вы можете взломать js напрямую.

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

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

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

+0

Это ответ на мою проблему, спасибо! –

+0

Это решило мою проблему, превратившуюся в скрытый iframe и переместив его позже на родительскую страницу, +1 – Jakob

1

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

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

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

0

Если я получаю эту проблему правильно, для рендеринга больше, чем оригинальный Swiffy вы можете поместить Swiffy в DIV и масштабировать его

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

+0

Использование div не сработало, я не пробовал iFrame. Я уверен, что iFrame может просто работать. –