![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
[+]
|
Задача проста. Есть игра на 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,787
|
А как должно быть?
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 194
|
хмм, ну я предполагал что событие FocusEvent.FOCUS_OUT будет срабатывать когда stage вцелом потеряет фокус
как в таком случае определить что пользователь кликнул на другое окно браузера?
__________________
нормально делай - нормально будет |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 194
|
спасибо, работает
__________________
нормально делай - нормально будет |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|