|
|
|||||
FullScreen и ESCAPE
Привет всем. Пишу десктопное приложение.
В приложении нужно реализовать кнопку FullScreen. У кнопки есть два состояния - перейти в полноэкранный режим и перейти в нормальный. Тут все просто, все работает: btnFullScreen.addEventListener(MouseEvent.CLICK, btnFullScreenHandler); private function btnFullScreenHandler(e:MouseEvent):void { if (stage.displayState == StageDisplayState.FULL_SCREEN){ stage.displayState = StageDisplayState.NORMAL; btnFullScreen.mc.gotoAndStop("s2"); } else { stage.displayState = StageDisplayState.FULL_SCREEN; btnFullScreen.mc.gotoAndStop("s1"); } } Технически понятно - нужно отлавливать события клавиатуры. Но не всегда срабатывает - через раз. В чем ошибка? Либо есть другие варианты реализовать полноценную кнопку FullScreen?
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
e.preventDefault() не сработает?
|
|
|||||
Решил проблему более рациональным путем, используя FullScreenEvent. Зачем ловить нажатия клавиш, если достаточно ловить событие FullScreenEvent )
Класс для панели меню: package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.events.Event; import flash.events.MouseEvent; import flash.events.FullScreenEvent; public class MainMenu extends Sprite { public function MainMenu() { bg.alpha = 0.6; addEventListener(Event.ADDED_TO_STAGE, addToStageHandler); } private function addToStageHandler(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, addToStageHandler); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw); btnFullScreen.addEventListener(MouseEvent.CLICK, btnFullScreenClick); } private function fullScreenRedraw(e:FullScreenEvent):void { if (e.fullScreen) { btnFullScreen.s2(); } else { btnFullScreen.s1(); } } private function btnFullScreenClick(e:MouseEvent):void { stage.displayState = (stage.displayState == StageDisplayState.FULL_SCREEN) ? StageDisplayState.NORMAL : StageDisplayState.FULL_SCREEN; } } } package { import flash.display.MovieClip; import flash.events.MouseEvent; public class BtnMenu extends MovieClip { private var defaultAlpha = 0.4; public function BtnMenu() { alpha = defaultAlpha; addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); gotoAndStop(name); buttonMode = true; } private function onMouseOver(e:MouseEvent):void { alpha = 0.8; } private function onMouseOut(e:MouseEvent):void { alpha = defaultAlpha; } public function s2():void { mc.gotoAndStop("s2"); } public function s1():void { mc.gotoAndStop("s1"); } } }
__________________
кто не отвечает, того garbage collector забирает |
Часовой пояс GMT +4, время: 02:09. |
|
« Предыдущая тема | Следующая тема » |
|
|