Flash: Movie останавливает выполнение AS (может быть, и рендеринг?), когда он не имеет фокуса.

У меня есть два флеш ролика, на разных вкладках браузера пользователя.

Они используют LocalConnection для общения друг с другом, но та, что на неактивной вкладке, ничего не делает, пока вы не переключитесь обратно на эту вкладку, вы можете это изменить? Может в теге embed?


person James T    schedule 28.02.2011    source источник


Ответы (1)


Одна из вещей, которые Adobe изменила в проигрывателе Flash после 10.1, чтобы заставить его потреблять меньше циклов ЦП, заключалась в том, чтобы заставить проигрыватель выполняться только со скоростью 2 кадра в секунду (или с какой-то другой смехотворно низкой скоростью), когда swf больше не находится в фокусе ( или даже если он все еще «в фокусе», но не отображается на экране из-за того, что он находится в той части окна браузера, которая прокручивается за пределы экрана.

Однако я не знаю ничего, что было бы присуще новому проигрывателю Flash, что могло бы помешать работе LocalConnection. У вас есть прослушиватели, настроенные для определения того, активны рассматриваемые swf или нет, прежде чем они попытаются сделать какие-либо вызовы?

person scriptocalypse    schedule 03.03.2011
comment
Можно ли сделать так, чтобы не менялся FPS? Это 3D-движок, который у меня есть, и когда вы снижаете FPS на долгое время, анимация начинает накапливаться, потому что AS все еще работает, и когда вы возвращаетесь к нему, анимация начинается снова, и есть миллиарды из них, чтобы он мог это сделать. вернуться на правильный путь, иногда так много, что вам нужно просто обновить всю страницу, чтобы восстановить контроль над фильмом. - person James T; 04.03.2011
comment
Нет, в этих случаях вам не разрешено устанавливать частоту кадров. Есть хак, в котором, если воспроизводится потоковый звук (на временной шкале), рендеринг падает только до 8 кадров в секунду, а если FLV воспроизводится только до 12 кадров в секунду (здесь я не уверен в точных числах кадров в секунду, не оглядываясь назад на документы). Однако это, вероятно, не то, что вы хотите. Ваши обновления основаны на прошедшем времени или просто на количестве событий enter_frame? Мне кажется, что последнее... вместо этого вы должны сделать первое, где движения, события, анимация основаны на дельта-времени, а не на X-количестве обновлений. - person scriptocalypse; 04.03.2011