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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.06.2010, 22:55
Seraf вне форума Посмотреть профиль Отправить личное сообщение для Seraf Найти все сообщения от Seraf
  № 1  
Ответить с цитированием
Seraf
[+1.3 02.08.06]
 
Аватар для Seraf

Регистрация: Aug 2006
Адрес: Ukraine Kyiv
Сообщений: 28
Отправить сообщение для Seraf с помощью ICQ
По умолчанию Как сделать fullscreen условием?

Не додумался иначе назвать тему.
В общем, проблема такая. Есть фильм что идёт по кругу. Хочу сделать 2 различные по внешнему виду кнопки: "fullscreen on" и "fullscreen off".
При этом чтобы в зависимости от режима экрана отображалась только нужная кнопка. Например, если делаю фуллскрин кнопка закрыть появлялась а открыть - исчезала.
Я на кнопки написал:

Код AS1/AS2:
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-м кадре и сделать это условием для отображения кнопки.
Догадываюсь, что есть масса способов как решить пролему иначе но меня интересует именно этот способ.
Спасибо.


Последний раз редактировалось Seraf; 11.06.2010 в 23:28.
Старый 12.06.2010, 01:23
eagregat вне форума Посмотреть профиль Отправить личное сообщение для eagregat Найти все сообщения от eagregat
  № 2  
Ответить с цитированием
eagregat

Регистрация: Jun 2008
Сообщений: 56
Отключить fullscreen средствами AS невозможно. Необходимо, чтобы юзер нажал esc.
Иначе, никак. Это азбука.

Старый 12.06.2010, 01:49
Seraf вне форума Посмотреть профиль Отправить личное сообщение для Seraf Найти все сообщения от Seraf
  № 3  
Ответить с цитированием
Seraf
[+1.3 02.08.06]
 
Аватар для Seraf

Регистрация: Aug 2006
Адрес: Ukraine Kyiv
Сообщений: 28
Отправить сообщение для Seraf с помощью ICQ
хм... какраз как отключить я знаю и на кнопке off у меня висит:
Код AS1/AS2:
on (release) 
{	fscommand ("fullscreen", false);
	_root.but1._visible=false;
	_root.but2._visible=true;
}
Мне нужно определние текущего значения fullscreen в 1-м кадре и использовать его как условие для отображения/скрытия видимости объекта.

То есть, если в 1-м кадре в начальном кадре нет никакого фулскрина, то кнопка "fullscreen off" должна быть невидимой. Но если уже при включенном fullscreen мувик опять вернулся на этот 1-й кадр то конечно не должен скрывать эту кнопку.

В общем, в 1-м кадре обект должен скрываться только когда обычный режим отображения (не fullscreen).

Старый 12.06.2010, 02:03
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Чаще заглядывайте в хелп, он есть. Есть такой обработчик классный - Stage.onFullScreen handler,
его как раз и нужно использовать для отслеживания изменения режима:
Код AS1/AS2:
var stageListener:Object = new Object();
Stage.addListener(stageListener);
stageListener.onFullScreen = fScreen;
 
function fScreen(full:Boolean) 
{	
	if (full) //вот оно, ваше условие
	{
		//действия для режима полного экрана, 
		//например видимость кнопки включения обычного режима			
	}
	else 
	{
		//действия для нормального режима
		//например видимость кнопки включения режима полного экрана
	}
}
Сам его в плеерах использую и вам советую.
И завязывайте писать код на кнопках, это неприлично и самое главное, неудобно.
Зачем вам больше одного кадра, объясните ради бога...


Последний раз редактировалось mooncar; 12.06.2010 в 02:10.
Старый 12.06.2010, 02:18
Seraf вне форума Посмотреть профиль Отправить личное сообщение для Seraf Найти все сообщения от Seraf
  № 5  
Ответить с цитированием
Seraf
[+1.3 02.08.06]
 
Аватар для Seraf

Регистрация: Aug 2006
Адрес: Ukraine Kyiv
Сообщений: 28
Отправить сообщение для Seraf с помощью ICQ
Задача сделать презентационный мувик который будут крутить на плазме локально с компа всякие девочки продавцы совсем не сведущие во флеш. Вот и хочу для них сделать кнопки входа и выхода в режимы.
Пытаюсь делать как могу ибо я художник а не программер.
Спасибо за код но он пока не работает. Повесил его в 1-м кадре. По-идее если нет фулскрина он должен скрывать кнопку "off" но файл запускается с 2-мя и off и on.

ps swf файл я открываю из папки
Вложения
Тип файла: rar fullscreen.rar (8.2 Кб, 64 просмотров)


Последний раз редактировалось Seraf; 12.06.2010 в 02:21.
Старый 12.06.2010, 02:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Значит, неправильно используете. Он "работает". Секундочку... пример будет.

Старый 12.06.2010, 02:39
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Смотрите как нужно.
Можно еще проще сделать, но я постарался не проще, а понятнее, это не одно и то же.
Содержимое кладите и управляйте им внутри большого мувика (с фоном который), используйте его таймлайн.
Так будет правильно.

PS. Естественно, тестим вне программы, запускаем уже скомпилированную флешку.
Вложения
Тип файла: rar fullscreen manage.rar (8.0 Кб, 69 просмотров)


Последний раз редактировалось mooncar; 12.06.2010 в 02:41.
Старый 12.06.2010, 02:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от eagregat Посмотреть сообщение
Отключить fullscreen средствами AS невозможно. Необходимо, чтобы юзер нажал esc.
Иначе, никак. Это азбука.
Ну зачем же так категорично. Совсем обязательно нажимать ESC, по-вашему как тогда этот режим закрывается с рисованных кнопок во всех плеерах, где они предусмотрены? (В том числе и в браузерной флешке).
Более того, режим может быть включен и выключен автоматически, с таймлайна.
Смотрите пример auto_fullscree.

Единственное, чего нельзя добиться - это автозапуска полноэкранного режима, когда флешка опубликована на странице, но при этом она благополучно может из него автоматически выйти, посредством кода AS. (См. пример auto_fullscreen_html).
Вложения
Тип файла: rar auto_fullscreen.rar (8.3 Кб, 72 просмотров)
Тип файла: rar auto_fullscreen_html.rar (5.8 Кб, 63 просмотров)


Последний раз редактировалось mooncar; 12.06.2010 в 02:56.
Старый 12.06.2010, 03:05
Seraf вне форума Посмотреть профиль Отправить личное сообщение для Seraf Найти все сообщения от Seraf
  № 9  
Ответить с цитированием
Seraf
[+1.3 02.08.06]
 
Аватар для Seraf

Регистрация: Aug 2006
Адрес: Ukraine Kyiv
Сообщений: 28
Отправить сообщение для Seraf с помощью ICQ
Спасибо. Это стоит использовать. Насчёт того, что код будет мне полностью понятен Вы конечно погорячились. Пока всё где присутствует "var" - для меня тёмный лес.
Вы показали как я писал в 1-м посте "другой" более крутой метод.
Нельзя ли просто в 1-м кадре написать какойто командой типа:
if (fscommand("fullscreen") == false) то видимость кнопки = false?
Без переменных "для чайников"....


Последний раз редактировалось Seraf; 12.06.2010 в 03:42.
Старый 12.06.2010, 03:13
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Так в языке записать нельзя. У вас так ничего не проверится.
Собственно, условие проверки полноэкранности, еще раз, повторюсь без var
Код AS1/AS2:
stageListener= new Object(); //этот новый объект
Stage.addListener(stageListener); //этот объект будет теперь слушать состояние сцены
stageListener.onFullScreen =   function (full) //обработка событий слушателя при изменени режима полный/нормальный
{	
	if (full) //вот оно, ваше условие: если состояние аргумента функции обработчика истинно, то есть если у нас полный экран
	{
		//действия для режима полного экрана, 
		//например видимость кнопки включения обычного режима			
	}
	else  //иначе
	{
		//действия для нормального режима
		//например видимость кнопки включения режима полного экрана
	}
}
Добавлено через 2 минуты
Можно еще проще (для записи, но не для понимания):
Код AS1/AS2:
Stage.addListener(this); //теперь слушать состояние сцены будет сам текущий объект (таймлайн)
this.onFullScreen =   function (full) 
{	
	if (full) 
	{
		//действия для режима полного экрана, 
		//например видимость кнопки включения обычного режима			
	}
	else 
	{
		//действия для нормального режима
		//например видимость кнопки включения режима полного экрана
	}
}
Конечно, можно все явно задать, если понимание "слушателя" сложно:
Код AS1/AS2:
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


Последний раз редактировалось mooncar; 12.06.2010 в 03:34.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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