|
|
|||||
События окна flash приложения.
Подскажите пожалуйста идею или концепцию - как узнать о том, что пользователь пытается уйти из flash приложения в (к примеру) ленту новостей, на свою страницу и т.п.
Т.е. задача состоит в том, что бы узнать что пользователь собирается сменить страницу. Может существует какая то хитрость? Может каким то образом я могу выполнить какой то js код внутри flash приложения и подписаться на его события? Есть идеи? |
|
|||||
Дело в том, что данный функционал является частью чата. Чат построен не на сокетах, а на get/post запросах. Поэтому когда пользователь уходит из приложения в любую другую часть контакта - не возможно определить фактический выход пользователя из чата.
|
|
|||||
Регистрация: Jul 2007
Сообщений: 393
|
Как вам уже заметили, если вкладка неактивна - то Event.DEACTIVATE
Если же вам нужна активность пользователя в вкладке, но вне приложения - ловите событие мыши над стейджем, например. Если определенное время не было событий - будет отмена обновлений, до ре-активации. |
|
|||||
Нет, этот не тот случай. Но, все же, спасибо за идеи. Я рассчитывал во flash`е подписаться на js событие о перезагрузке страницы. В тот самый момент я бы отправил на сервер команду "выход из чата". Но что бы подписаться на данное событие - js код должен быть размещен, ...и его размещение и является для меня проблемой.
|
|
|||||
Регистрация: Jul 2007
Сообщений: 393
|
Цитата:
|
|
|||||
Значит так, вышло у меня сл.
package { import flash.display.Sprite; import flash.external.ExternalInterface; public class Hook extends Sprite { private const HTML_CONTAINER_DIV_ID:String = 'FlashOutput'; private const RECEIVER_FUNCTION_NAME:String = 'onBeforeUnLoad'; public function Hook() { if (ExternalInterface.available) { ExternalInterface.addCallback(RECEIVER_FUNCTION_NAME, onBeforeUnLoad); var query:String = 'window.onbeforeunload = function(){document["' + HTML_CONTAINER_DIV_ID + '"].' + RECEIVER_FUNCTION_NAME + '({Event:"onbeforeunload"});}'; ExternalInterface.call('function(){' + query + '}'); } } private function onBeforeUnLoad(value:Object = null):void { // Debug.traceObj( { 'onBeforeUnLoad()':value } ); // do some before unload; } } } Добавлено через 5 часов 52 минуты ...хотя это пофигу, потому что flash контейнер ВКонтакт`а передает allowscriptaccess="never" Последний раз редактировалось ERrorMAKros; 08.11.2012 в 15:52. |
Часовой пояс GMT +4, время: 20:34. |
|
« Предыдущая тема | Следующая тема » |
|
|