Просмотр полной версии : Как сделать fullscreen условием?
Не додумался иначе назвать тему.
В общем, проблема такая. Есть фильм что идёт по кругу. Хочу сделать 2 различные по внешнему виду кнопки: "fullscreen on" и "fullscreen off".
При этом чтобы в зависимости от режима экрана отображалась только нужная кнопка. Например, если делаю фуллскрин кнопка закрыть появлялась а открыть - исчезала.
Я на кнопки написал:
on (release)
{
fscommand ("fullscreen", false);
_root.but1._visible=false;
_root.but2._visible=true;
Всё работает но когда при фулскрине доходит до 1-го кадра кнопка "fullscreen off" исчезает. В нём прописано чтобы закрывающая кнопка была невидимая.
В начале фильма же мне нужно чтобы "on" была видимая, а "off" - невидимая.
Пытаюсь создать условие для видимости кнопок в 1-м кадре но чтобы не прописывал в if () ничего не отключает видимость кнопки off.
Пытался и if (fscommand ("fullscreen", false)) {...
и if (fullscreen == false)) {...
также if (fscommand("fullscreen") == false) {...
ничего не работает :(
Пол дня копаюсь как же сделать так чтобы мувик распознал состояние фулскрина в 1-м кадре и сделать это условием для отображения кнопки.
Догадываюсь, что есть масса способов как решить пролему иначе но меня интересует именно этот способ.
Спасибо.
eagregat
12.06.2010, 01:23
Отключить fullscreen средствами AS невозможно. Необходимо, чтобы юзер нажал esc.
Иначе, никак. Это азбука.
хм... какраз как отключить я знаю и на кнопке off у меня висит:
on (release)
{ fscommand ("fullscreen", false);
_root.but1._visible=false;
_root.but2._visible=true;
}
Мне нужно определние текущего значения fullscreen в 1-м кадре и использовать его как условие для отображения/скрытия видимости объекта.
То есть, если в 1-м кадре в начальном кадре нет никакого фулскрина, то кнопка "fullscreen off" должна быть невидимой. Но если уже при включенном fullscreen мувик опять вернулся на этот 1-й кадр то конечно не должен скрывать эту кнопку.
В общем, в 1-м кадре обект должен скрываться только когда обычный режим отображения (не fullscreen).
Чаще заглядывайте в хелп, он есть. Есть такой обработчик классный - Stage.onFullScreen handler,
его как раз и нужно использовать для отслеживания изменения режима:
var stageListener:Object = new Object();
Stage.addListener(stageListener);
stageListener.onFullScreen = fScreen;
function fScreen(full:Boolean)
{
if (full) //вот оно, ваше условие
{
//действия для режима полного экрана,
//например видимость кнопки включения обычного режима
}
else
{
//действия для нормального режима
//например видимость кнопки включения режима полного экрана
}
}
Сам его в плеерах использую и вам советую.
И завязывайте писать код на кнопках, это неприлично и самое главное, неудобно.
Зачем вам больше одного кадра, объясните ради бога...
Задача сделать презентационный мувик который будут крутить на плазме локально с компа всякие девочки продавцы совсем не сведущие во флеш. Вот и хочу для них сделать кнопки входа и выхода в режимы.
Пытаюсь делать как могу ибо я художник а не программер.
Спасибо за код но он пока не работает. Повесил его в 1-м кадре. По-идее если нет фулскрина он должен скрывать кнопку "off" но файл запускается с 2-мя и off и on.
ps swf файл я открываю из папки
Значит, неправильно используете. Он "работает". Секундочку... пример будет.
Смотрите как нужно.
Можно еще проще сделать, но я постарался не проще, а понятнее, это не одно и то же.
Содержимое кладите и управляйте им внутри большого мувика (с фоном который), используйте его таймлайн.
Так будет правильно.
PS. Естественно, тестим вне программы, запускаем уже скомпилированную флешку.
Отключить fullscreen средствами AS невозможно. Необходимо, чтобы юзер нажал esc.
Иначе, никак. Это азбука.
Ну зачем же так категорично. Совсем обязательно нажимать ESC, по-вашему как тогда этот режим закрывается с рисованных кнопок во всех плеерах, где они предусмотрены? (В том числе и в браузерной флешке). :)
Более того, режим может быть включен и выключен автоматически, с таймлайна.
Смотрите пример auto_fullscree.
Единственное, чего нельзя добиться - это автозапуска полноэкранного режима, когда флешка опубликована на странице, но при этом она благополучно может из него автоматически выйти, посредством кода AS. (См. пример auto_fullscreen_html).
Спасибо. Это стоит использовать. Насчёт того, что код будет мне полностью понятен Вы конечно погорячились. Пока всё где присутствует "var" - для меня тёмный лес.
Вы показали как я писал в 1-м посте "другой" более крутой метод.
Нельзя ли просто в 1-м кадре написать какойто командой типа:
if (fscommand("fullscreen") == false) то видимость кнопки = false?
Без переменных "для чайников"....
Так в языке записать нельзя. У вас так ничего не проверится.
Собственно, условие проверки полноэкранности, еще раз, повторюсь без var :)
stageListener= new Object(); //этот новый объект
Stage.addListener(stageListener); //этот объект будет теперь слушать состояние сцены
stageListener.onFullScreen = function (full) //обработка событий слушателя при изменени режима полный/нормальный
{
if (full) //вот оно, ваше условие: если состояние аргумента функции обработчика истинно, то есть если у нас полный экран
{
//действия для режима полного экрана,
//например видимость кнопки включения обычного режима
}
else //иначе
{
//действия для нормального режима
//например видимость кнопки включения режима полного экрана
}
}
Добавлено через 2 минуты
Можно еще проще (для записи, но не для понимания):
Stage.addListener(this); //теперь слушать состояние сцены будет сам текущий объект (таймлайн)
this.onFullScreen = function (full)
{
if (full)
{
//действия для режима полного экрана,
//например видимость кнопки включения обычного режима
}
else
{
//действия для нормального режима
//например видимость кнопки включения режима полного экрана
}
}
Конечно, можно все явно задать, если понимание "слушателя" сложно:
var fullScr:Boolean = false ; //следим с помощью флага за состоянием полнооэкранности
fsb.onRelease = function() { //при нажатии:
if (!fullScr) //если состояние флага = false, то есть у нас норм. режим сейчас, тогда
{
Stage.displayState = 'fullscreen'; //включаем полный режим
fsb.btn_norm._visible = true ; //управление видимостью содержимого кнопки
fsb.btn_full._visible = false ;
fullScr = true ; //переключаем флаг
}
else //если состояние флага = true, то есть если у нас сейчас полный экран
{
Stage.displayState = 'normal'; //тогда включаем нормальный режим
fsb.btn_norm._visible = false ;
fsb.btn_full._visible = true ;
fullScr = false ; //переключаем флаг
}
};
Просто вы хотели именно проверку условия, а тут идут наборами прямых директив - все, что надо делать при одном случае, что при другом. То есть именно проверки полноэкранности не происходит, тут просто проверяем для удобства, в каком состоянии находится флаг fullScr
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.