Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Хром скрывает всплывающие окна в режиме direct. Как быть? (http://www.flasher.ru/forum/showthread.php?t=207863)

caseyryan 13.05.2014 09:21

Хром скрывает всплывающие окна в режиме direct. Как быть?
 
Столкнулся с одной очень неприятной проблемой. Первый раз сделал игру для вк полностью на старлинге (потому что это чистый порт с мобилы), и наткнулся на очень неприятную штуку, которая не происходит в опере, но происходит в хроме. Из-за режима direct, конактовские окна с приглашением друзей и окна оплаты, полностью перекрываются плеером. Другой режим, естественно, выбрать нельзя. Вопрос: можно это как-то обойти? Может есть какие-то JS велосипеды?
Нагуглить что-то ничего не удается. Неужели эта идея обречена на провал?
Единственное, что приходит в голову, написать JS мост, который просто будет прятать div с плеером. Но как-то не особо мне эта идея нравится

morgenshtern 13.05.2014 10:37

У вас ифрейм или чисто флеш?

С ифреймом все хорошо.
http://clip 2net.com/s/i6OgrJ (форум ненавидит clip2net?)
Хром 34.0.1847.131 m, плеер 13.0.0.206, wmode = "direct", чистый старлинг.
В ифрейме вот такие колбеки стоят:
Код AS1/AS2:

VK.addCallback("onWindowBlur", function() {
        VK.callMethod("resizeWindow", 800, 613);
});
 
VK.addCallback("onWindowFocus", function() {
                VK.callMethod("resizeWindow", 800, 613);
});


caseyryan 13.05.2014 12:24

айфрейм у меня.
Стандартный пепперфлеш нормально работает, а если включить отладчик, в нем такая фигня

morgenshtern 13.05.2014 14:46

Видимо гугл как то "по своему" реализовал отладку в своем пеппере.
Но вряд ли много пользователей игрулек в ВК сидят под никсами с пеппер-отладчиком)

caseyryan 13.05.2014 20:56

Я не про пеппер отладчик говорю, а про отдельный отладчик. Если отключить пеппер

KumoKairo 24.05.2014 02:16

Не знаю как с контактом, но в фб этот вопрос решался таким образом-там специально для этого было определённое событие "открыто диалоговое окно", на котое нужно было подписаться (то ли JS функцией, то ли сразу AS3, не помню точно ). После чего при вызове обработчика делается скриншот текущего состояния игры (в старлинге есть набор функций) в разрешении примерно 500 пикселей по ширине, который после этогорастягивается до размера флешки и блюрится (это быстрее, чем делать полноразмерный скриншот). Потом кодируется по base64 и строкой отправляется в js обертку, которая выпмливает флешку (убирает куда-нибудь с экрана на координаты 0:1000) и ставит на её место полученный скриншот. Я бы ссылки на примеры дал, но это все давно потерялось. Можете погуглить, поискать в дев уголке на фейсбуке. Я думаю в контакте это все тоже вполне выполнимо.
Как ни странно-этот метод является официальным фейсбучным костылем с режимом direct, все типовые игры делают точно так же. Там правда часто из-за времени на обработку скриншота часто ставят флеш заставку " pausing"

---упдт
Вспомнил что даже делал библиотеку специально для этого, должна валяться на гитхабе. Но сейчас насчёт её работоспособности ручаться не буду-понятия не имею как с тех пор изменился старлинг. Но ссылку с репо могу скинуть для более близкого знакомства с реализацией

bifidokk 24.05.2014 10:06

Цитата:

Единственное, что приходит в голову, написать JS мост, который просто будет прятать div с плеером. Но как-то не особо мне эта идея нравится
а не нужен JS мост. просто нужна подписка на события открытия диалоговых окон, например, оплаты или добавления друзей. они есть в апи вк

Код AS3:

<script type="text/javascript">
                        function show_app()
                        {
                                document.getElementById('flash-app').style.position = 'relative';
                                document.getElementById('flash-app').style.top = "0px";
                        }
 
                        function hide_app()
                        {
                                document.getElementById('flash-app').style.position = 'absolute';
                                document.getElementById('flash-app').style.top = "9000px";
                        }                       
                        VK.init(function() {
                                VK.callMethod("resizeWindow", 1000, 800);
                                VK.addCallback("onWindowBlur", hide_app);
                                VK.addCallback("onWindowFocus", show_app);                               
                        });
 
                </script>


caseyryan 24.05.2014 10:27

Спасибо) Возьму на заметку
Что-то про родные события вк мне и в голову не пришло.

Tails 24.05.2014 12:36

Вложений: 1
Могу поделиться своей наработкой, все основные VK события, все подписки к JS из AS
Cc класс это консоль https://code.google.com/p/flash-cons...GettingStarted

Класс автоматический скрывает/отображает клиент при вызове вконтактовых окон. Нужно только указать id flash объекта в разметке страницы.


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

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