Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.03.2015, 23:12
DenDobriy вне форума Посмотреть профиль Отправить личное сообщение для DenDobriy Найти все сообщения от DenDobriy
  № 1  
Ответить с цитированием
DenDobriy

Регистрация: Dec 2013
Сообщений: 35
По умолчанию FullScreen.Esc.Изменение размеров окна

Привет.
Мое приложение должно работать в полноэкранном режиме.
Многие пользователи привыкли нажимать кнопку Esc для отмены или вызова меню.
Из-за этой кнопки у меня такая проблема: когда нажимается Esc, окно из полноэкранного режима выходит и некрасиво "сьезжает". Т.е. не вписывается аккуратно в экран,а часть flash-плейера куда-то вбок сползает. Что бы приложение нормально отображалось окошко надо вручную разворачивать.
1. Можно ли "обойти" кнопку Esc?
2. Есть идея открывать маленькое окошко с меню, в котором все будет аккуратно и можно будет из него вернуться в режим fullScreen. Как изменить размер окна? Например из 1920*1080 сделать 500*500 по центру рабочего стола и обратно.

Старый 30.03.2015, 06:59
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
1. Можно ли "обойти" кнопку Esc?
Нет
Цитата:
Как изменить размер окна? Например из 1920*1080 сделать 500*500 по центру рабочего стола и обратно.
Флеш плеер не умеет управлять своими размерами и положением

Старый 30.03.2015, 10:15
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 3  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Флеш плеер не умеет управлять своими размерами и положением
AIR вроде может, но не проверял
http://help.adobe.com/ru_RU/FlashPla...ow.html#bounds

Старый 31.03.2015, 02:30
DenDobriy вне форума Посмотреть профиль Отправить личное сообщение для DenDobriy Найти все сообщения от DenDobriy
  № 4  
Ответить с цитированием
DenDobriy

Регистрация: Dec 2013
Сообщений: 35
Спасибо, callme.
В AIR работает без проблем
Код AS3:
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);
}
}
Добавлено через 46 часов 37 минут
как выяснилось,не все так просто(
Почему-то работает не так как надо
Если через stage.addEventListener ловить клавиатуру в полноэкранном режиме, на нажатия клавиатуры срабатывает только после выхода из полноэкранного режима кнопкой esc.
Если через NativeApplication.nativeApplication.addEventListener,то вообще непонятно как работает
Код AS3:
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
		{
 
		}
		//
	}
}

Старый 02.04.2015, 14:09
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 5  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Вместо
Код AS3:
stage.displayState = StageDisplayState.FULL_SCREEN;
надо
Код AS3:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

Старый 04.04.2015, 19:12
DenDobriy вне форума Посмотреть профиль Отправить личное сообщение для DenDobriy Найти все сообщения от DenDobriy
  № 6  
Ответить с цитированием
DenDobriy

Регистрация: Dec 2013
Сообщений: 35
помогло, но теперь у меня становится неактивным новое окно меню(
Ошибка появляется со второго захода.
Проверяю трейсом stage.nativeWindow.active; Везде true, но окно работает корректно, только если предварительно щелкнуть мышью именно по сцене в предыдущем окне.
Вложения
Тип файла: rar test.rar (6.91 Мб, 22 просмотров)

Старый 04.04.2015, 19:15
DenDobriy вне форума Посмотреть профиль Отправить личное сообщение для DenDobriy Найти все сообщения от DenDobriy
  № 7  
Ответить с цитированием
DenDobriy

Регистрация: Dec 2013
Сообщений: 35
не в тему еще вопрос
Почему анимация текста в формате TLF в AIR 3.2 for desktop выдает ошибку "warning"

Старый 04.04.2015, 20:55
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
warning это не ошибка, а предупреждение

Старый 04.04.2015, 22:53
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Не следует в подобных темах использовать префикс "Алгоритмы".
__________________
Поймай яблоко 2!

Старый 04.04.2015, 22:58
DenDobriy вне форума Посмотреть профиль Отправить личное сообщение для DenDobriy Найти все сообщения от DenDobriy
  № 10  
Ответить с цитированием
DenDobriy

Регистрация: Dec 2013
Сообщений: 35
sorry

Добавлено через 3 минуты
по предыдущему посту можете подсказать в чем дело?
про "warrning" я спросил,т.к. наверное что-то импортировать надо чтобы не было предупреждения?

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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