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

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

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

Регистрация: Feb 2012
Сообщений: 5
Question Как прикрепить объект к нижней кромке окна Flash?

Здравствуйте, уважаемые Форумчане.
Передо мной стоит следующая задачка:
Есть игровое окно Flash, в нем создается менюшка игры, которая по нажатию кнопочки может "выдвигаться" из нижней кромки экрана, показывая все свои возможности (выдвигается менюшка только на свой параметр высоты), и "задвигаться" вниз экрана, но не до конца - чтобы оставались видны самые необходимые кнопки меню.
Если экран статичен в размерах - то всё можно прописать по координатам, но окно игры можно масштабировать на весь экран, будь то экран нетбука или экран 24-дюймового монитора... и тогда всё уже не выглядит так красиво.
Вопрос в том, как правильно сделать привязку меню к нижней кромке экрана, который сейчас от масштабирован пользователем как угодно случайно?
Необходимо, чтобы по-прежнему из нижней кромки экрана торчала только шапка менюшки, а всё остальное скрывалось из виду. При выдвижении же меню в полный рост нижняя его часть по-прежнему должна касаться нижнего края экрана.
Код подобных телодвижений после всех моих попыток примерно следующий:
Код AS3:
		public function hideBarFunction(e:MouseEvent) {
			if (menu.y >= stage.stageHeight - 54) {
			}
			else {		
			timerhide = new Timer(16, 0);
                        timerhide.addEventListener(TimerEvent.TIMER, onHide);
			timerhide.start();
			}
		}
 
		public function showBarFunction(e:MouseEvent) {
			if (menu.y <= stage.stageHeight - 185) {
			}
			else {		
			timershow = new Timer(16, 0);
                        timershow.addEventListener(TimerEvent.TIMER, onShow);
			timershow.start();
			}
		}
 
		public function onHide (e:TimerEvent) {
			menu.y += 4;
			if (menu.y >= stage.stageHeight - 54) {
				timerhide.stop();
				timerhide.removeEventListener(TimerEvent.TIMER, onHide);
			}
		}
 
		public function onShow (e:TimerEvent) {
			menu.y -= 4;
				if (menu.y <= stage.stageHeight - 185) {
				menu.y = stage.stageHeight - 185;
				timershow.stop();
				timershow.removeEventListener(TimerEvent.TIMER, onShow);
				}
		}
 
		public function fullScreenFunction (e:MouseEvent) {
			stage.displayState = StageDisplayState.FULL_SCREEN;
			dispatchEvent(new Event(InterfaceMenu.FULL_MON));
			fullScreenButton.removeEventListener(MouseEvent.CLICK, fullScreenFunction);
			fullScreenButton.addEventListener(MouseEvent.CLICK, normalScreenFunction);
		}
 
		public function normalScreenFunction (e:MouseEvent) {
			stage.displayState = StageDisplayState.NORMAL;
			dispatchEvent(new Event(InterfaceMenu.NORMAL_MON));
			fullScreenButton.removeEventListener(MouseEvent.CLICK, normalScreenFunction);
			fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenFunction);
		}
Пожалуйста, подскажите, хорошее решение этой задачки.

Создать новую тему   Часовой пояс GMT +4, время: 03:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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