|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+]
|
Как можно отследить фокус в браузере
Задача проста. Есть игра на HTML страничке и хочется если человек переходит на другое окно браузера или прикрывает браузер в трай или открывает поверх другое приложение то ставить игру на паузу.
Есть в AS3 такого плана события? Заранее спасибо. |
|
|||||
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
есть событие MOUSE_LEAVE во флеше. Но мне кажется лучше использовать жаваскриптовое событие onBlur() (потеря фокуса) и передавать его во флеш.
__________________
Flex 2 и Co |
|
|||||
[+]
|
MOUSE_LEAVE не подходит так как игра на клавишах а игрок может мышку просто увести. Java Script тоже не подойдет так как игра на разных доменах будет и браться в свободном порядке другими сайтами.
|
|
|||||
[+]
|
кажется проблема решилась очень просто
stage.focus = this; stage.addEventListener(FocusEvent.FOCUS_IN, focusInAction); stage.addEventListener(FocusEvent.FOCUS_OUT, focusOutAction); главное вернуть stage.focus = this; обратно когда игрок возвращается |
|
|||||
Регистрация: 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 } } } а при клике на bg_mc - FocusEvent.FOCUS_OUT почему так?
__________________
нормально делай - нормально будет |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
А как должно быть?
|
|
|||||
Регистрация: Sep 2005
Сообщений: 194
|
хмм, ну я предполагал что событие FocusEvent.FOCUS_OUT будет срабатывать когда stage вцелом потеряет фокус
как в таком случае определить что пользователь кликнул на другое окно браузера?
__________________
нормально делай - нормально будет |
|
|||||
Регистрация: Sep 2005
Сообщений: 194
|
спасибо, работает
__________________
нормально делай - нормально будет |
Часовой пояс GMT +4, время: 10:49. |
|
« Предыдущая тема | Следующая тема » |
|
|