Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   ESC и как его поймать в FullScreen (http://www.flasher.ru/forum/showthread.php?t=134429)

Stajor 30.12.2009 02:08

ESC и как его поймать в FullScreen
 
не получаетса поймать нажатие ESC в Full screen
Код AS3:

        public class FullScreenButton
        {
                public function FullScreenButton() {
                        addEventListener(MouseEvent.CLICK, clickHandler);
                }
 
                private function clickHandler(event:MouseEvent):void {
                        try {
                        if(this.stage.displayState == StageDisplayState.NORMAL) {
                            this.stage.displayState = StageDisplayState.FULL_SCREEN;
                        }
                        else {
                            this.stage.displayState = StageDisplayState.NORMAL;
                        }
                        }
                        catch (err:SecurityError) {}
                }

при нажатее на кнопку все работает, открываетса на весь экран и закрываетса. но кагда нажимаеш ESC не получаетса поймать эвент

fljot 30.12.2009 02:26

а где ловля события? и зачем вы так неграмотно пишете?

Stajor 30.12.2009 02:45

ловлю пытался делать в конструкторе
Код AS3:

stage.addEventListener(Event.FULLSCREEN, fullScrHandler);

насчет неправельно пишу, я меньше недели как работаю с AS3 и FLEX. пока только учусь. Если что не так написал поправте, я только буду рад здоровой критике

fljot 30.12.2009 03:20

Ну вообще должно ловиться, если конечно подписка действительно происходит. В конструкторе stage может быть ещё не доступен, если объект ещё не находится в display list'е. Но т.к. в приведённом коде класс даже не наследуется от display object'а, я так понимаю, что это вырезанный кусок кода, поэтому уж не знаю как там у вас точно происходит..
(Я про русский язык имел ввиду)

Stajor 30.12.2009 22:05

Цитата:

Сообщение от fljot (Сообщение 876101)
Ну вообще должно ловиться, если конечно подписка действительно происходит. В конструкторе stage может быть ещё не доступен, если объект ещё не находится в display list'е. Но т.к. в преведённом коде класс даже не наследуется от display object'а, я так понимаю, что это вырезанный кусок кода, поэтому уж не знаю как там у вас точно происходит..
(Я про русский язык имел ввиду)

Ок, дальше буду разбираться.
Насчет русского, мне простительно, я 10 лет на русском не писал. Так что за моё правописание извените

adi.belis 01.01.2010 03:19

поймать "esc" чтоб окно не уменьшалось вроде нельзя но есть обходной путь.
1.пишиш код
Код:

protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void
                        {
                                this.stage.displayState = StageDisplayState.FULL_SCREEN;
                                fullScreen(this.nativeWindow)
                        }
                        private function fullScreen(win:NativeWindow):void
                        {
                        win.width = Capabilities.screenResolutionX;
                        win.height = Capabilities.screenResolutionY;
                        }

2. в "apps.xml"
Код:

<systemChrome>none</systemChrome>

Stajor 03.01.2010 02:51

от наконец нашел как поймать этот гнустный эвент, работает во всех случаях, при нажатии на "ESC" или на изменения экрана через код
Код AS3:

systemManager.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);



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

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