PDA

Просмотр полной версии : ESC и как его поймать в FullScreen


Stajor
30.12.2009, 02:08
не получаетса поймать нажатие ESC в Full screen

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
ловлю пытался делать в конструкторе

stage.addEventListener(Event.FULLSCREEN, fullScrHandler);


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

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

Stajor
30.12.2009, 22:05
Ну вообще должно ловиться, если конечно подписка действительно происходит. В конструкторе 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" или на изменения экрана через код

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