![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 5
|
Здравствуйте, уважаемые Форумчане.
Передо мной стоит следующая задачка: Есть игровое окно Flash, в нем создается менюшка игры, которая по нажатию кнопочки может "выдвигаться" из нижней кромки экрана, показывая все свои возможности (выдвигается менюшка только на свой параметр высоты), и "задвигаться" вниз экрана, но не до конца - чтобы оставались видны самые необходимые кнопки меню. Если экран статичен в размерах - то всё можно прописать по координатам, но окно игры можно масштабировать на весь экран, будь то экран нетбука или экран 24-дюймового монитора... и тогда всё уже не выглядит так красиво. Вопрос в том, как правильно сделать привязку меню к нижней кромке экрана, который сейчас от масштабирован пользователем как угодно случайно? Необходимо, чтобы по-прежнему из нижней кромки экрана торчала только шапка менюшки, а всё остальное скрывалось из виду. При выдвижении же меню в полный рост нижняя его часть по-прежнему должна касаться нижнего края экрана. Код подобных телодвижений после всех моих попыток примерно следующий: 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); } |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Вы всегда можете узнать координату нижней линии экрана: stageHeight
Привяжите к ней контейнер с меню. А внутри контейнера двигайте меню вниз и вверх, как нужно. А по Event`у Перемещайте контейнер меню в точку stageHeight. |
|
|||||
|
Регистрация: Mar 2012
Сообщений: 9
|
Вот готовый класс для подобных задач. Можно взять как основу, а дальше подстраивать под себя.
Build a Fluid Website Layout with Flash |
|
|||||
|
Цитата:
__________________
adobe AS3 manual |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Ты что? Тут без framework`а никак.
|
|
|||||
|
Tr1te +1 к сарказму!
Я так же без необходимых библиотек не могу справиться с данной задачей.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|