|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2013
Сообщений: 35
|
FullScreen.Esc.Изменение размеров окна
Привет.
Мое приложение должно работать в полноэкранном режиме. Многие пользователи привыкли нажимать кнопку Esc для отмены или вызова меню. Из-за этой кнопки у меня такая проблема: когда нажимается Esc, окно из полноэкранного режима выходит и некрасиво "сьезжает". Т.е. не вписывается аккуратно в экран,а часть flash-плейера куда-то вбок сползает. Что бы приложение нормально отображалось окошко надо вручную разворачивать. 1. Можно ли "обойти" кнопку Esc? 2. Есть идея открывать маленькое окошко с меню, в котором все будет аккуратно и можно будет из него вернуться в режим fullScreen. Как изменить размер окна? Например из 1920*1080 сделать 500*500 по центру рабочего стола и обратно. |
|
|||||
Цитата:
Цитата:
|
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
AIR вроде может, но не проверял
http://help.adobe.com/ru_RU/FlashPla...ow.html#bounds |
|
|||||
Регистрация: Dec 2013
Сообщений: 35
|
Спасибо, callme.
В AIR работает без проблем import flash.display.NativeWindow; import flash.events.Event; stage.addEventListener(KeyboardEvent.KEY_DOWN,fn_KeyDown); function fn_KeyDown(event:KeyboardEvent) { trace(event.keyCode); if(event.keyCode==27) { stage.nativeWindow.bounds = new Rectangle(1920/2-500,1080/2-500, 1000, 1000); } if(event.keyCode==32) { stage.nativeWindow.bounds = new Rectangle(1920/2-250, 1080/2-250, 500, 500); } } как выяснилось,не все так просто( Почему-то работает не так как надо Если через stage.addEventListener ловить клавиатуру в полноэкранном режиме, на нажатия клавиатуры срабатывает только после выхода из полноэкранного режима кнопкой esc. Если через NativeApplication.nativeApplication.addEventListener,то вообще непонятно как работает package { import flash.system.fscommand; import flash.display.MovieClip; import flash.display.StageScaleMode; import flash.display.StageDisplayState; import flash.display.Stage; import flash.events.Event; import flash.utils.Timer; import flash.events.KeyboardEvent; import flash.events.TimerEvent; import flash.net.FileFilter; import flash.filters.GlowFilter; import flash.filters.BlurFilter; import flash.display.NativeWindow; import flash.geom.Rectangle; import flash.desktop.NativeApplication; import flash.ui.Keyboard; public class Main extends MovieClip { private var level_1:Boolean = false; private var start_game:Boolean = false; var main_hero:hero_level_1 = new hero_level_1 ;// загрузка героя уровень 1 var background_animation:move_picture_bg = new move_picture_bg ;// загрузка активного фона уровень 1 var light_glow:mc_glow = new mc_glow ; //фильтры главного героя private var filtersArray_main_hero:Array = main_hero.filters; private var my_glowFilter_main_hero:GlowFilter = new GlowFilter(0xFFFFFF,1.0,10,10,1,1,false,false); private var my_blurFilter_main_hero:BlurFilter = new BlurFilter(20,20,1); //фильтры для фонового свечения private var filtersArray_lightGlow:Array = light_glow.filters; private var my_glowFilter_lightGlow:GlowFilter = new GlowFilter(0xFFFFFF,1.0,500,500,50,1,true,false); private var my_blurFilter_lightGlow:BlurFilter = new BlurFilter(100,100,1); public function Main () { addEventListener (Event.ENTER_FRAME,fn_init); filtersArray_lightGlow.push (my_glowFilter_lightGlow,my_blurFilter_lightGlow); light_glow.filters = filtersArray_lightGlow; light_glow.alpha = 0.5; light_glow.x = 1650; light_glow.y = 550; light_glow.scaleX = light_glow.scaleY = 0.9; addChild (light_glow); } // private function fn_init (event:Event):void { removeEventListener (Event.ENTER_FRAME,fn_init); seting_scrin (); // stage.addEventListener (KeyboardEvent.KEY_DOWN,keyDownHandler); stage.addEventListener (Event.ENTER_FRAME,fn_load_level); function fn_load_level (e:Event) { removeEventListener (Event.ENTER_FRAME,fn_load_level); // start_game = true; // if (currentScene.name == "level_1" && level_1 == false) { level_1 = true; filtersArray_main_hero.push (my_glowFilter_main_hero,my_blurFilter_main_hero); main_hero.filters = filtersArray_main_hero; addChild (main_hero); main_hero.x = 940; main_hero.y = 500; addChildAt (background_animation,0); } else { return; } } } // private function seting_scrin ():void { stage.displayState = StageDisplayState.FULL_SCREEN; stage.scaleMode = StageScaleMode.NO_SCALE; } private function keyDownHandler (event:KeyboardEvent):void { removeEventListener (KeyboardEvent.KEY_DOWN,keyDownHandler); // if (event.keyCode == 32) { gotoAndStop (1,"level_1");// тестовый переход к уровню } // if (event.keyCode == 27) { stage.nativeWindow.bounds = new Rectangle(1920/2-250,1080/2-250, 500, 500); gotoAndStop(1,"quit_menu"); } } // private function fn_move_elements ():void { } // } } |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Вместо
надо |
|
|||||
Регистрация: Dec 2013
Сообщений: 35
|
помогло, но теперь у меня становится неактивным новое окно меню(
Ошибка появляется со второго захода. Проверяю трейсом stage.nativeWindow.active; Везде true, но окно работает корректно, только если предварительно щелкнуть мышью именно по сцене в предыдущем окне. |
|
|||||
Регистрация: Dec 2013
Сообщений: 35
|
не в тему еще вопрос
Почему анимация текста в формате TLF в AIR 3.2 for desktop выдает ошибку "warning" |
|
|||||
Lorem ipsum
|
Не следует в подобных темах использовать префикс "Алгоритмы".
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Dec 2013
Сообщений: 35
|
sorry
Добавлено через 3 минуты по предыдущему посту можете подсказать в чем дело? про "warrning" я спросил,т.к. наверное что-то импортировать надо чтобы не было предупреждения? |
Часовой пояс GMT +4, время: 20:05. |
|
« Предыдущая тема | Следующая тема » |
|
|