В моем проекте я drawing plenty of things на сцене и в светлячок я получаю позорный "Warning: Unresponsive script" сообщение от stage.update() функции.createjs.Stage.update() и отвечать на запросы сценария в FireFox
Я пробовал break my script into multiple asynchronous cycles using setTimer, рисуя только 100 элементов в цикле, прежде чем кратковременно вернуть управление в браузер. Я думал, что stage.update() будет перерисовывать только недавно добавленные элементы, но, видимо, это не работает. Даже если я создам и добавлю на этап только 1 новый элемент, если на этапе уже есть 1000 элементов, обновление будет занимать столько же времени, как если бы я добавил все 1001 элементов за один раз. Это, очевидно, приводит к сообщению «Предупреждение: невосприимчивый сценарий».
Мне нужно обновить только добавленные элементы или сделать функцию обновления асинхронной.
Вы пытались кэшировать некоторые вещи для решения вашей проблемы? Насколько мне известно, области перекраски в настоящее время не поддерживаются в EaselJS. Я также заметил некоторые улучшения производительности, если вы вручную установили видимость в false, если объекты больше не видны (http://www.createjs.com/docs/easeljs/files/easeljs_display_DisplayObject.js.html#l294). Кроме того, FF медленно выполняет рендеринг Gradients и Shadows (но в вашем примере это не выглядит так). – derz
Если вы рисуете графику, это может иметь смысл кэшировать их, как предлагает @derz. Кроме того, позаботьтесь о том, чтобы очистить графику, прежде чем перерисовывать их. Если вы только _adding_ content, вы можете попробовать кешировать свое представление, а затем использовать 'updateCache' только для добавления новых детей. Если контент меняется, вы застряли в обновлении всего. – Lanny
Я попробую кэшировать, но мне нужно обновить их при каждом масштабировании. моя проблема связана с первоначальной ничьей, которая занимает больше времени, чем любое изменение масштаба или что-либо еще. –