Flash / Actionscript 3: когда Flash останавливает рендеринг и как сохранить его активным? - PullRequest
0 голосов
/ 06 января 2010

У меня есть приложение flash / Actionscript 3 (swf). Это приложение отправляет сообщение на сервер каждые 2 секунды. Однако в некоторых браузерах / операционных системах (например, safari в Mac), когда браузер теряет фокус, он прекращает отправлять эти сообщения.

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

Я уже пытался использовать Timer, событие, которое вызывалось бы каждые 2 секунды, но я где-то читал (и мои тесты, похоже, согласны), что этот таймер также связан с рендерингом / вводом кадра, так что функция timed также не будет выполнен.

Есть ли способ сделать то, что я хочу?

1 Ответ

2 голосов
/ 06 января 2010

Вы можете использовать сценическое событие MOUSE_LEAVE , чтобы проверить, когда ваш SWF потерял фокус.

Я бы порекомендовал использовать ExternalInterface для установления соединения между swf и javascript. Как только соединение будет установлено, javascript будет вызывать ваш сервер вместо флэш-памяти, что может привести к потере фокуса.

Из любопытства, зачем вам опрашивать сервер каждые 2 секунды?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...