Определение, когда пользователь покидает страницу / браузер во Flex - PullRequest
2 голосов
/ 07 октября 2008

У меня есть оболочка HTML, которая содержит приложение Flex, есть ли событие, которое я могу прослушать, которое запускается, когда пользователь покидает оболочку HTML либо с помощью навигационных стрелок, либо при закрытии браузера?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 11 октября 2008

Вы также можете прослушивать Event.ACTIVATE и Event.DEACTIVATE во Flash. Все EventDispatchers получают эти события, когда Flash / AIR получает или теряет фокус от ОС.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/EventDispatcher.html#event:deactivate

Это очень полезно, когда вы предоставляете ссылку, которая открывает новое окно, и вы хотите уменьшить функциональность и нагрузку (например, приостановить и отключить видео), а затем возобновить работу, когда пользователь вернется.

1 голос
/ 08 октября 2008

Редактировать: я понял, что это может быть не совсем то, что вы просите, но я оставлю это на всякий случай, если это будет полезно для всех, кто ищет это. Также обратите внимание, что вы можете выполнять другие действия в событии onbeforeunload, которые, как правило, будут надежно выполняться до того, как пользователь получит доступ к диалоговому окну подтверждения, если ваша процедура выгрузки не слишком сложна (в этом случае вам все равно следует изменить конструкцию).


onbeforeunload позволяет прервать выгрузку страницы:

window.onbeforeunload = function(e) {
    // Browser will pop up a confirmation dialog, with some text before
    // and after your return string; try it in different browsers to
    // see how they behave.
    return 'String to confirm';
}
0 голосов
/ 20 октября 2008

Вопрос в том, что вам нужно делать, когда пользователь уходит?

Если вам нужно выполнить действие на вашем сервере, то лучший способ справиться с этим - открыть Socket () при инициализации вашего SWF, а затем, когда пользователь уходит, этот сокет будет прерван, и сервер может обнаружить это и выполнить дополнительную логику.

Если вам нужно выполнить операцию на стороне клиента, такую ​​как сохранение SharedObject, то вы не можете полагаться на событие «только одна последняя вещь» для плагина, так как есть много способов закрыть сеанс плагина. В этом случае лучше всего постоянно сохранять SharedObjects каждые несколько секунд.

0 голосов
/ 08 октября 2008

Самое близкое, что я нашел для этого, это событие javascript window.onunload. Однако вы не можете прослушивать это в приложении Flex, так как приложение может больше не работать к тому времени, когда вызывается метод unload. Мы использовали его для оповещения других частей страницы через javascript о том, что приложение было выгружено, хотя в зависимости от того, что вам нужно сделать, этого может быть достаточно.

0 голосов
/ 08 октября 2008

Существует Body.onUnload, но я не уверен, насколько он надежен на самом деле.

...