![]() |
Закрытие Браузера
Возможно ли прослушать из флешки события закрытия окна страницы, переход на другую страницу или даже самого браузера??????
Не используя конечно JS. |
нет. низя.
|
а зачем это нужно ?
|
Чтобы сделать пользователю жизнь еще больше трудной? А то неактивные флешки на страницах уже научились просто так сами добавлять новое окно во вкладках браузера. И ведь стандартные средства оперы не всегда и блокируют такое.
|
У меня проблема созвучная где то этой теме. В приложение подгружаются мувики в swf и поочередно показываются на сцене. В IDE, да в общем и в браузере все работает нормально, однако при свертывании или переходе на другую вкладку флешка подвисает на одном и том же мувике, единственное отличие его от других в том, что он однофреймовый (или однокадровый, как хотите). Трейсы показывают, что во время выдвижения его на сцену возникают странные паузы, ну сами по себе они не странные а странно то, что его выдвижение, которое занимает примерно 1-1.5 сек заканчивается, в результате уже после демонстрации мувиклипа (и его сигнала контроллеру о том, что он "отбился") которая занимает около 7-ми секунд. В результате возникает "накладка", то есть два мувика (а окно браузера либо свернуто, либо на другой вкладке) находятся одновременно на сцене, короче в результате сцена полностью очищается - окно пустое. Бился с этой штукой сутки, закончилось тем, что написал "костыль", который это дело "устаканивает". Сам процесс поправить так и не смог, не понимаю - в чем дело.
|
2КорДум: А пример такой флешки можно? Мне для собственного интереса
|
mr.oizo, нет, не покажу, ибо в том месте, где она появляется, находится динамический ротатор.
|
negin, и все же, для каких целей вам это ?
мне тоже интересно. я обратил внимание, что когда закрываешь браузер или вкладку или переходишь на другую страницу, то ФП корректно закрывает netconnection. Поэтому есть надежда, что все таки некоторую часть кода флешка чисто теоретически может выполнить до того, как будет убита |
Цитата:
или для сохранения настроек пользователя, чтобы на каждое изменение настройки запрос не слать. Присоединяюсь к вопросу, и есть ли надежный способ сделать это с помощью js (давно пытался, не получалось более чем для одного бравзера)? |
Цитата:
Но если успеть что-то делать на клиенте - проблема, которую, например, я для себя еще не решил. |
Цитата:
А есть ли средства flash что бы отследить свертывание окна браузера или переключения на другую вкладку? |
Цитата:
Были похожие грабли - вам надо привязываться не к кадрам, а к времени. В 10.1 FP при смене/сворачивании вкладок ФПС понижается до 4х ( косвенно можно например так отследить), поэтому ваша анимация длится дольше. |
Цитата:
|
Цитата:
И эти события отслеживают потерю фокуса, а это может быть просто перекрытие другим окном. Note: No ActionScript event is dispatched when Flash Player enters or leaves sleep mode. |
Присоединяюсь к вопросу. Вот игра, которая в паузу уходит, например http://www.kongregate.com/games/rich...r/hello-worlds
|
Цитата:
|
Похожая проблема была у меня. Попробую описать.
Был один таймер, время его работы, примерно 1,5 сек, назовем его "Короткий таймер". И был другой таймер, его время работы 12 сек, пусть будет "Длинный таймер". Порядок их работы следующий: 1. Включается слушатель Короткого таймера. 2. Включается Длинный таймер. 3. Включается Короткий таймер. 4. Событие - Короткий таймер. По окончанию работы Короткого таймера включается слушатель Длинного. 5. Событие - Длинный таймер. Отключается слушатель Длинного таймера. Дальше все это работает циклично по пунктам 2-5... Так вот при сворачивании окна, или переключении на другую вкладку работа Короткого таймера резко замедлялась, судя по getTimer() на его работу уходило 18 сек. а не 1,5. А Длинный таймер работал примерно с такой же продолжительностью как и при открытом окне, если скорость и отличалась то незначительно. А вторая особенность была в том, что Слушатель Длинного таймера срабатывал, несмотря на то, что Короткий таймер не успевал его включить, ведь его работа стала продолжительней Длинного таймера. Слушатель Длинного таймера был отключен однозначно, проверял hasEventListener и willTriger, и тем не менее реагировал на событие окончания работы Длинного Таймера! Вот такая штука. Решилось это установкой в Слушателе инструкции if(hasEventListener)... Баг это или не баг, незнаю, но покопав в этом направлении можно сделать модуль сигнализирующий о том, что пользователь свернул окно или перешел на другую вкладку. Ведь признака падения fps не достаточно, так как на сцене, к примеру, могут выполнятся ролики с разным fps. |
Цитата:
А вообще можно еще через js и ExternalInterface попробовать - т.к. сворачивание браузера или переключение на другую вкладку есть события браузера, а не FP. Всякие там window.onBlur есть для этого Цитата:
|
Хомяк
Одного знания FPS конечно недостаточно, так как может быть падение фпс. Поэтому советую отталкиваться от временных промежутков, а не от кадров. Таймер не может замедлятся сам по себе, фпс падает до 4, но промежутки времени определяются также. http://www.flashgamesclassroom.com/c...sed-animation/ |
andrew9911 Вы правы, замедлялся он не сам по себе, это скорее процесс обработки графики построенный на таймерах, что бы упростить я назвал его Коротким таймером, возможно это было не очень правильно, но интересно не замедление само по себе. А то, что слушатель реагировал на событие будучи не активированным, более того, он сам знал, что он неактивен! Как вам это? "Привет! Я не активен. Н-н-на!!! Тебе событие!" :D. Нормально да?
А по поводу "onBlur"а - потому у нас все так криво и работает, что пытаемся прикрутить то что предназначено для другого к тому, что нам надо.:) |
КорДум: ну из флеша, по идее, вкладку браузера можно открыть с помощью
Код AS3:
Хомяк: складываете мувики в очередь; как только мувик скрылся, показываете следующий. Никаких "накладок" у вас после этого быть не может. Crenth: если вы выключили комп выдергиванием шнура из розетки, то флешка ничего корректно не завершит. А вот сервер будет знать, что флешка закончила работать, так как сокетное соединени с ней разорвется. А так как вся модель у вас хранится на сервере, то ничего страшного не произойдет. expl: если пользователь делает что-то важное (что меняет модель), то на сервер слать сообщение придется. Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 09:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.