Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.10.2012, 15:35
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 1  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Question События окна flash приложения.

Подскажите пожалуйста идею или концепцию - как узнать о том, что пользователь пытается уйти из flash приложения в (к примеру) ленту новостей, на свою страницу и т.п.
Т.е. задача состоит в том, что бы узнать что пользователь собирается сменить страницу. Может существует какая то хитрость? Может каким то образом я могу выполнить какой то js код внутри flash приложения и подписаться на его события? Есть идеи?

Старый 06.11.2012, 12:16
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
что бы узнать что пользователь собирается сменить страницу.
это невозможно. Телепатию в AS3 еще не придумали. А так Event.DEACTIVATE может помочь, если пользователь по вкладкам переключается.

Старый 06.11.2012, 22:49
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 3  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Дело в том, что данный функционал является частью чата. Чат построен не на сокетах, а на get/post запросах. Поэтому когда пользователь уходит из приложения в любую другую часть контакта - не возможно определить фактический выход пользователя из чата.

Старый 06.11.2012, 23:03
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 4  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Как вам уже заметили, если вкладка неактивна - то Event.DEACTIVATE
Если же вам нужна активность пользователя в вкладке, но вне приложения - ловите событие мыши над стейджем, например. Если определенное время не было событий - будет отмена обновлений, до ре-активации.

Старый 07.11.2012, 00:04
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 5  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Нет, этот не тот случай. Но, все же, спасибо за идеи. Я рассчитывал во flash`е подписаться на js событие о перезагрузке страницы. В тот самый момент я бы отправил на сервер команду "выход из чата". Но что бы подписаться на данное событие - js код должен быть размещен, ...и его размещение и является для меня проблемой.

Старый 07.11.2012, 01:08
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 6  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Цитата:
Сообщение от ERrorMAKros Посмотреть сообщение
Нет, этот не тот случай. Но, все же, спасибо за идеи. Я рассчитывал во flash`е подписаться на js событие о перезагрузке страницы. В тот самый момент я бы отправил на сервер команду "выход из чата". Но что бы подписаться на данное событие - js код должен быть размещен, ...и его размещение и является для меня проблемой.
Мне кажется, вы ошибаетесь. Почему это код должен быть размещен(где размещен вообще?), что за ограничение? флеш через externalinterface может любой js код выполнить

Старый 07.11.2012, 15:13
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 7  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Значит так, вышло у меня сл.
Код AS3:
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;
		}
	}
}
Работает в Chrome.

Добавлено через 5 часов 52 минуты
...хотя это пофигу, потому что flash контейнер ВКонтакт`а передает allowscriptaccess="never"


Последний раз редактировалось ERrorMAKros; 08.11.2012 в 15:52.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:08.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.