Форум 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);
		}
Пожалуйста, подскажите, хорошее решение этой задачки.

Старый 30.03.2012, 16:39
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 2  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Вы всегда можете узнать координату нижней линии экрана: stageHeight
Привяжите к ней контейнер с меню. А внутри контейнера двигайте меню вниз и вверх, как нужно.

А по Event`у
Код AS3:
Event.RESIZE
Перемещайте контейнер меню в точку stageHeight.

Старый 31.03.2012, 10:20
MyLogin вне форума Посмотреть профиль Отправить личное сообщение для MyLogin Найти все сообщения от MyLogin
  № 3  
Ответить с цитированием
MyLogin

Регистрация: Mar 2012
Сообщений: 9
Вот готовый класс для подобных задач. Можно взять как основу, а дальше подстраивать под себя.
Build a Fluid Website Layout with Flash

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от MyLogin Посмотреть сообщение
Вот готовый класс для подобных задач. Можно взять как основу, а дальше подстраивать под себя.
Build a Fluid Website Layout with Flash
Ну такое. Для такой примитивной задачи использовать стороннюю библиотеку, не айс
__________________
adobe AS3 manual

Старый 31.03.2012, 23:18
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 5  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Ты что? Тут без framework`а никак.

Старый 31.03.2012, 23:23
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 6  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Tr1te +1 к сарказму!
Я так же без необходимых библиотек не могу справиться с данной задачей.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Создать новую тему Ответ Часовой пояс 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.