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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Mar 2004
Адрес: Dnepr, Ukraine
Сообщений: 30
По умолчанию Переключение в fullScreen и его особенности

Доброго всем дня.

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

Вот и два вопроса:
1) Как бы вы определили время, через которое флэшка будет полноценно реагировать на пользователя?
2) Есть ли способ как-то изменить эту дефолтную надпись про выход из режима полного экрана? хотя бы поменять цвет, фон.

По первому пункту не стоит предлагать "засечь время и использовать его" - приблизительно так я сейчас и сделал, вроде бы это время стандартное для всех плееров, но блин... вдруг нет?

Для определения событиями я писал код: при переходе в полный экран пишем метку времени, и начинаем каждый кадр вызывать маусДаун - думал, как только маусДаун сработает, значит время прошло и флэш активен. Но маусДаун работает СРАЗУ ЖЕ, если он генерится программно, а вот если используется мышь - не работает до тех пор, пока не пройдёт время, которое я хочу определить... в общем, какие идеи?


Последний раз редактировалось Maxio; 18.06.2010 в 18:50. Причина: дополнение
Старый 18.06.2010, 19:28
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Простите, что значит "генерировать программно" или "вызвать МаусДаун"?
Это нонсенс и непонимание основ. onMouseDown - это событие, которое порождает мышь и только.
Получить это событие и его обработать можно только в том случае, когда нажата ЛКМ.

По сабжу - вот вам идея - не мучайтесь и не обращайте внимание, изменить эту надпись, время ее вывода, и даже отследить событие ее исчезновения вы не сможете. Если даже пользовательский ввод в это время недоступен некое малое время - не думаю, что это как-то навредит вашему ролику.
Потому что переключение в режим полного экрана - это пользовательская инициатива, и пользователь должен быть готов к некому возможному временному дискомфорту.

UPD. Проверил только что ваши слова по поводу блокирования (необработки событий) мыши и кнопок сцены в период индикации надписи ("Press Escape"). Все в порядке - на сцене ничего не блокируется из кнопок, все обработчики событий типа onRelease, onRollOver работают. Мышь и обработчики ее событий (onMouseMove и т.д.) тоже исправно работают.
Все браузеры, кроме > IE7.

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


Последний раз редактировалось mooncar; 18.06.2010 в 19:44.
Старый 18.06.2010, 20:45
Maxio вне форума Посмотреть профиль Отправить личное сообщение для Maxio Посетить домашнюю страницу Maxio Найти все сообщения от Maxio
  № 3  
Ответить с цитированием
Maxio

Регистрация: Mar 2004
Адрес: Dnepr, Ukraine
Сообщений: 30
да, возможно, сказано некорректно.

Я имел в виду, прописав клипу mc.onMouseDown = function...... я вызывал в кадре mc.onMouseDown(), но это правда получается просто вызов метода, а не событие, верно... мой косяк

насчёт других компьютеров сейчас проверю, это идея. Проста, но гениальна )) спасибо!

А чем это меня напрягает: как я уже сказал, ролик - это пазл-игра. Детали поднимаются по onPress - и двигаются по onMouseMove - всё нормально. Но для дальнейшего взаимодействия им необходимо слушать корректно mouseDown, mouseUp, mouseWheel. То есть секунды три после перехода в полный экран юзер может поднять деталь, может водить её, но не может ни опустить, ни прокрутить и как бы впадает в удивление.

Я ещё тестирую разные варианты, напишу, как будут результаты. Но на моём компе на любом браузере одно и то же - ие8, сафари, файрфокс и хром.

Старый 18.06.2010, 20:53
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 4  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
У вас что, пользователь нажав ЛКМ (подняв фишку) может попасть в полноэкранный режим?

Старый 18.06.2010, 21:02
Maxio вне форума Посмотреть профиль Отправить личное сообщение для Maxio Посетить домашнюю страницу Maxio Найти все сообщения от Maxio
  № 5  
Ответить с цитированием
Maxio

Регистрация: 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:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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