![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2004
Адрес: Dnepr, Ukraine
Сообщений: 30
|
Доброго всем дня.
Ролик на веб-странице, в html. Собственно, вопрос в чём - по нажатию на кнопку ролик переводится в полный экран известными средствами. В то время, пока показывается дефолтная надпись про выход из полного экрана, реакция на действия жёстко ограничена - в своём ролике с пазлом я заметил, что сразу же работает только onPress, все остальные события - mouseDown, mouseWheel и т. д. начинают корректно обрабатываться только через некоторый промежуток времени, когда надпись про выход начинает исчезать. Вот и два вопроса: 1) Как бы вы определили время, через которое флэшка будет полноценно реагировать на пользователя? 2) Есть ли способ как-то изменить эту дефолтную надпись про выход из режима полного экрана? хотя бы поменять цвет, фон. По первому пункту не стоит предлагать "засечь время и использовать его" - приблизительно так я сейчас и сделал, вроде бы это время стандартное для всех плееров, но блин... вдруг нет? Для определения событиями я писал код: при переходе в полный экран пишем метку времени, и начинаем каждый кадр вызывать маусДаун - думал, как только маусДаун сработает, значит время прошло и флэш активен. Но маусДаун работает СРАЗУ ЖЕ, если он генерится программно, а вот если используется мышь - не работает до тех пор, пока не пройдёт время, которое я хочу определить... в общем, какие идеи? Последний раз редактировалось Maxio; 18.06.2010 в 18:50. Причина: дополнение |
|
|||||
|
Модрон-ветеринар
|
Простите, что значит "генерировать программно" или "вызвать МаусДаун"?
Это нонсенс и непонимание основ. onMouseDown - это событие, которое порождает мышь и только. Получить это событие и его обработать можно только в том случае, когда нажата ЛКМ. По сабжу - вот вам идея - не мучайтесь и не обращайте внимание, изменить эту надпись, время ее вывода, и даже отследить событие ее исчезновения вы не сможете. Если даже пользовательский ввод в это время недоступен некое малое время - не думаю, что это как-то навредит вашему ролику. Потому что переключение в режим полного экрана - это пользовательская инициатива, и пользователь должен быть готов к некому возможному временному дискомфорту. UPD. Проверил только что ваши слова по поводу блокирования (необработки событий) мыши и кнопок сцены в период индикации надписи ("Press Escape"). Все в порядке - на сцене ничего не блокируется из кнопок, все обработчики событий типа onRelease, onRollOver работают. Мышь и обработчики ее событий (onMouseMove и т.д.) тоже исправно работают. Все браузеры, кроме > IE7. Возможно, какой-то косяк в вашем ролике. Дайте ссылку, что ли посмотреть, если вам важно с этим разобраться. Или попросту сами проверьте на другом компе - может у вас плагин глючит. Последний раз редактировалось mooncar; 18.06.2010 в 19:44. |
|
|||||
|
Регистрация: Mar 2004
Адрес: Dnepr, Ukraine
Сообщений: 30
|
да, возможно, сказано некорректно.
Я имел в виду, прописав клипу mc.onMouseDown = function...... я вызывал в кадре mc.onMouseDown(), но это правда получается просто вызов метода, а не событие, верно... мой косяк ![]() насчёт других компьютеров сейчас проверю, это идея. Проста, но гениальна )) спасибо! А чем это меня напрягает: как я уже сказал, ролик - это пазл-игра. Детали поднимаются по onPress - и двигаются по onMouseMove - всё нормально. Но для дальнейшего взаимодействия им необходимо слушать корректно mouseDown, mouseUp, mouseWheel. То есть секунды три после перехода в полный экран юзер может поднять деталь, может водить её, но не может ни опустить, ни прокрутить и как бы впадает в удивление. Я ещё тестирую разные варианты, напишу, как будут результаты. Но на моём компе на любом браузере одно и то же - ие8, сафари, файрфокс и хром. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
У вас что, пользователь нажав ЛКМ (подняв фишку) может попасть в полноэкранный режим?
|
|
|||||
|
Регистрация: Mar 2004
Адрес: Dnepr, Ukraine
Сообщений: 30
|
да нет. Переход по отдельной кнопке из игрового меню. onRelease. В общем, http://time4puzzle.com - там игра. Меню это то, которое в правом верхнем углу во время сборки пазла. Сейчас я занят апдейтом как раз на тему полноэкранного режима и встретился с указанной проблемой.
вот лучше линк сразу на пазл, чтобы не лазить по сайту: http://time4puzzle.com/game/?puzzle=152&size=6 (это будет пазл с классной деффчонкой) Добавлено через 20 минут вот, забацал тестовый испытательный ролик. Адрес: http://time4puzzle.com/fstest/ Методика: пару раз жмём мышкой на пустом месте, чтобы увидеть, в какое время это было сделано. Жмём на фулскрин кнопку - после перехода в полный экран я жму бешено мышь и вижу, что события начинают обрабатываться примерно спустя четыре секунды. ролик - просто кадр с любым клипом с именем fsButton и кодом на этом кадре: stop();
Stage.scaleMode = "noScale";
Stage.align = "LT";
var stageFS = false;
var txt = this.createTextField("txt", 0, 0, 0, Stage.width, Stage.height);
txt.multiline = true;
txt.wordWrap = false;
txt.selectable = false;
txt.text = "Стартуем, ребяты!";
function addText(str)
{txt.text+="\n"+str;
txt.scroll = txt.maxscroll;
}
this.onMouseDown = function()
{addText(getTimer()+"\tonMouseDown");
}
this.onMouseUp = function()
{addText(getTimer()+"\tonMouseUp");
}
fsButton.onRelease = function()
{this._parent.stageFS = !this._parent.stageFS;
Stage.displayState = (this._parent.stageFS) ? "fullScreen" : "normal";
}
Добавлено через 25 минут UPD такое впечатление, что пока не исчезнет эта надпись, оно как раз и не работает. Добавлено через 7 часов 11 минут Да, кстати, выяснилось, что и onMouseMove тоже блокируется. Работают только rollOver, onPress и тому подобное, ну и startDrag - тоже работает. Остальное приблизительно 4 секунды не отвечает, как раз столько показывается надпись. Эх, чувствую, придётся юзерам вешать лапшу типа "подготовка к полноэкранному режиму, подождите 4, 3, 2,1.... :'( Добавлено через 16 часов 34 минуты Короче, на данный момент никоим образом обойти эти ограничения не получилось. Придумал и воплотил единственный вариант - при переходе в полноэкранный режим пазл блокируется спец.клипом на весь экран, где написано: чтобы продолжить игру, дождитесь, пока исчезнет надпись, и нажмите на кнопку ОК. Кнопка ОК ловит мышь onMouseDown + hitTest - поэтому сработает только после исчезновения надписи, когда все события будут уже ловиться и всё будет корректно. Юзер, нажавший ОК раньше, ничего не получит до исчезновения надписи. В текущей версии плеера (10 с чем-то) надпись держится 4+ секунды. Переход из полного экрана обратно происходит без каких-бы то ни было задержек и проблем. Последний раз редактировалось Maxio; 19.06.2010 в 04:14. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|