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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.11.2007, 17:04
BAHUS вне форума Посмотреть профиль Отправить личное сообщение для BAHUS Посетить домашнюю страницу BAHUS Найти все сообщения от BAHUS
  № 1  
Ответить с цитированием
BAHUS
[+]
 
Аватар для BAHUS

Регистрация: Aug 2001
Адрес: Украина Харьков
Сообщений: 104
Отправить сообщение для BAHUS с помощью ICQ
Question Как можно отследить фокус в браузере

Задача проста. Есть игра на HTML страничке и хочется если человек переходит на другое окно браузера или прикрывает браузер в трай или открывает поверх другое приложение то ставить игру на паузу.

Есть в AS3 такого плана события?

Заранее спасибо.

Старый 14.11.2007, 17:16
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 2  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
есть событие MOUSE_LEAVE во флеше. Но мне кажется лучше использовать жаваскриптовое событие onBlur() (потеря фокуса) и передавать его во флеш.
__________________
Flex 2 и Co

Старый 14.11.2007, 17:49
BAHUS вне форума Посмотреть профиль Отправить личное сообщение для BAHUS Посетить домашнюю страницу BAHUS Найти все сообщения от BAHUS
  № 3  
Ответить с цитированием
BAHUS
[+]
 
Аватар для BAHUS

Регистрация: Aug 2001
Адрес: Украина Харьков
Сообщений: 104
Отправить сообщение для BAHUS с помощью ICQ
MOUSE_LEAVE не подходит так как игра на клавишах а игрок может мышку просто увести. Java Script тоже не подойдет так как игра на разных доменах будет и браться в свободном порядке другими сайтами.

Старый 14.11.2007, 18:40
BAHUS вне форума Посмотреть профиль Отправить личное сообщение для BAHUS Посетить домашнюю страницу BAHUS Найти все сообщения от BAHUS
  № 4  
Ответить с цитированием
BAHUS
[+]
 
Аватар для BAHUS

Регистрация: Aug 2001
Адрес: Украина Харьков
Сообщений: 104
Отправить сообщение для BAHUS с помощью ICQ
кажется проблема решилась очень просто

stage.focus = this;
stage.addEventListener(FocusEvent.FOCUS_IN, focusInAction);
stage.addEventListener(FocusEvent.FOCUS_OUT, focusOutAction);

главное вернуть stage.focus = this; обратно когда игрок возвращается

Старый 16.01.2008, 14:35
STILL.05 вне форума Посмотреть профиль Отправить личное сообщение для STILL.05 Найти все сообщения от STILL.05
  № 5  
Ответить с цитированием
STILL.05

Регистрация: Sep 2005
Сообщений: 194
Код:
package {
	
	import flash.display.Sprite
	import flash.text.TextField
	import flash.events.FocusEvent
	
	public class TestFocus extends Sprite {
		private var bg_mc:Sprite
		private var log_txt:TextField
		public function TestFocus() {
			
			bg_mc = new Sprite()
			bg_mc.graphics.beginFill(0xaaaaaa, 1);
			bg_mc.graphics.drawRect(0, 0, this.stage.stageWidth, this.stage.stageHeight);
			bg_mc.graphics.endFill();
			this.addChild(bg_mc)
			
			log_txt = new TextField()
			log_txt.border = true
			log_txt.width = 150
			log_txt.height = 350
			log_txt.background = true
			log_txt.multiline = true
			log_txt.selectable = false
			this.addChild(log_txt)

			this.stage.addEventListener(FocusEvent.FOCUS_IN, focusInAction);
			this.stage.addEventListener(FocusEvent.FOCUS_OUT, focusOutAction);
		}
		
		
		private function focusInAction(e:FocusEvent):void {
			log_txt.htmlText += '<b>focusInAction</b>'
			log_txt.scrollV = log_txt.maxScrollV
		}
		
		private function focusOutAction(e:FocusEvent):void {
			log_txt.htmlText += 'focusOutAction'
			log_txt.scrollV = log_txt.maxScrollV
		}
	}
}
при клике на текстовое поле генерится событие FocusEvent.FOCUS_IN
а при клике на bg_mc - FocusEvent.FOCUS_OUT

почему так?
__________________
нормально делай - нормально будет

Старый 16.01.2008, 14:56
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
А как должно быть?

Старый 16.01.2008, 14:59
STILL.05 вне форума Посмотреть профиль Отправить личное сообщение для STILL.05 Найти все сообщения от STILL.05
  № 7  
Ответить с цитированием
STILL.05

Регистрация: Sep 2005
Сообщений: 194
хмм, ну я предполагал что событие FocusEvent.FOCUS_OUT будет срабатывать когда stage вцелом потеряет фокус

как в таком случае определить что пользователь кликнул на другое окно браузера?
__________________
нормально делай - нормально будет

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Event.ACTIVATE
Event.DEACTIVATE
__________________
33 коровы

Старый 16.01.2008, 16:56
STILL.05 вне форума Посмотреть профиль Отправить личное сообщение для STILL.05 Найти все сообщения от STILL.05
  № 9  
Ответить с цитированием
STILL.05

Регистрация: Sep 2005
Сообщений: 194
спасибо, работает
__________________
нормально делай - нормально будет

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

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

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


 


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


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