![]() |
Отключение флеш при не активной вкладке!
Ребята, умоляю Вас, помогите мне! :o
Дело вот в чем. Я пишу приложение на флеш, это очень серьезная заказ для меня. Я писала его около 2-х месяцев и вот, когда почти все уже готово заказчики столкнулись с катастрофической проблемой. Приложение должно работать онлайн. И у одного и у второго пользователя должно быть на экране то же самое. Но вот в чем дело: Когда встраиваешь флеш на страницу браузера и переходишь на другую вкладку, оставляю вкладку с флешкой не активной - то та флешка перестает работать, ставиться на паузу. Это ведет к тому, что пользователи видят разные вещи и разный порядок происходящего. Заказчики сказали чтобы я исправила эту проблему иначе они откажутся :( Я столько долго работала над этой работой! Пожалуйста, помогите мне найти выход, облазила уже все, что можно. Надежда угасает... |
нужно отслеживать когда курсор вышел за пределы флеша, и ставить на паузу приложение, не знаю как в AS2, но в AS3 этот вопрос с примером был рассмотрен: http://flasher.ru/forum/showpost.php...8&postcount=91
во, вроде для AS2 нашел: http://actualwave.com/blog/?p=24 |
Я так понял у ТС обратная проблема - остановка ролика на неактивной вкладке.
У мена аналогично есть ролики, которые даже находясь на активной вкладке (внизу, за пределами экрана) даже не начинают проигрываться, пока их не видно (правда я не разбирался, почему, сейчас похоже этот глюк пропал - вероятно от версии флеш плеера зависит). ТС, это происходит в любом браузере или в каком-то конкретном? |
Если не удастся победить "паузу", возможно стоит подумать над более грамотной синхронизацией?
Чтоб юзеры видели одно и тоже вне зависимости от "пауз". |
Angelinka, прежде всего используйте для публикации флешки режимы wmode="opaque" или "transparent" (если нужен прозрачный фон). Это если у вас (у заказчиков) сейчас стоит "window". Это влияет на работу флешки в неактивной вкладке.
С ними паузы скорее всего не будет. А вообще конечно, как здесь говорили, синхронизация не должна зависеть от разных факторов - например от скорости процессоров разных компов, т.е. скорости работы флеш-плагина. |
TO NikolyA:
Большое спасибо, если ничего не поможет - придется сделать так. :( Добавлено через 1 минуту Цитата:
Добавлено через 2 минуты Цитата:
Добавлено через 3 минуты Цитата:
Да, но вот опять таки, как создать такую синхронизацию? :( |
Angelinka тогда придется апгрейдить под 10-ку и если проект на AS2 написан, то чтоб уважить клиента придется под AS3 переписывать
|
Angelinka
у вас события к чему привязаны? onEnterFrame? Повесьте его на setInterval - на таймер. вот тут http://vkontakte.ru/app1858588 - писк таймера повешен на setInterval, в бэкграунде и закрытх вкладках - пищит.... По карйней мере ДОЛЖЕН пищать :) |
Цитата:
Добавлено через 2 минуты Цитата:
|
У меня сейчас тоже 10й плеер стоит, но никак не могу добиться от него замирания флешки на неактивной вкладке, по-этому только в теории - можно попробовать создать один setInterval в котором вызывать updateAfterEvent(), еще можно попробовать запустить звук (тишину, но маловероятно что поможет).
|
Прочитайте про версию 10.1 там четко написано что это новая фича у плейера, так борятся с нагрузкой на проц в Adobe. И еще если есть фоновый звук тогда флешка не стопится, не проверял на счет звука, но без звука стопится 100%
|
Цитата:
|
Вообще исходя из задачи ("И у одного и у второго пользователя должно быть на экране то же самое.") вроде бы следует что всей обработкой данных должен заниматься сервер, а у клиентов должно идти только отображение, которое не зависит от скорости выполнения флеша или частоты кадров. Может быть вы перемудрили чего, и не все так страшно.
|
Цитата:
|
Так это делается иначе - игроки производят некоторые действия, действия отправляются на сервер, сервер делает обсчет игровой ситуации и выдает всем игрокам текущую ситуацию, которая визуализируется. Примерно так. В противном случае вы никогда не добъетесь 100% идентичных результатов. Хотя бы из-за того, что например функция Math.random (если элемент случайности присутствует) на разных компьютерах дает разные результаты. То есть вы изначально пошли по неверному пути, не изучив основы онлайн игр, имхо.
|
Цитата:
|
Цитата:
|
Цитата:
|
Коммент.
1. При входе в игру написать, что использовать вкладки нельзя, и откройте флэшку в отдельном окне. 2. Грузить флэшку в попап. При этом они должны быть разблокированы. Код AS1/AS2:
|
Цитата:
Добавлено через 5 минут В общем, ребята, капец полный. Готовлю веревку и мыло, до слез обидно.. Переписывала флешку под интервалы долго и нудно, как мне все посоветовали и флешка все равно стопится. Но я нашла зато наконец официальное заявление от adobe что да как: SWF is Invisible: * SWF frame rate is clocked down to 2 frames/sec. No rendering occurs unless the SWF becomes visible again. * timers (AS2 Interval and AS3 Timers) are clocked down to 2 a second. * local connections are clocked down to 2 a second. Получается что все интервалы сбрасываются до 2 выполнений в секунду, а уменя фреймрейт 30 кадров в секунду, 2 явно не хватает. Так же там написано, что если на заднем плане есть звук - то фреймрейт стает 8 кадров в секунду вместо 2. Но 8 кадров для анимации - это даже не смешно.. Вот так вот все печально заканчивается. Я в истерике, жить не хочеться.. Добавлено через 19 минут Я нашла похожую ситуацию в другой игре, но там разработчики как-то решили эту проблему. Флешка вроде не тормозиться, но нагрузка на ЦП все равно падает если флешка не активна.. Вот ссылка на игру: http://nonoba.com/wmarsh/starland-multiplayer-td Если они как-то это сделали... Значит, возможно есть шанс.. :( |
Angelinka, поясните, пожалуйста, как у вас получается "Я так и сделала [игровую ситуацию обсчитывает сервер, клиент ее визуализирует]... ... У одного визуализировалось буд-то он выиграл а на самом деле проиграл.". Ну никак не могу понять. Может не все так плохо и вы просто где-то ошиблись немного в алгоритме.
|
| Часовой пояс GMT +4, время: 18:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.