Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Пропадает фокус клавиатуры с игры (http://www.flasher.ru/forum/showthread.php?t=206878)

Vansimar 11.03.2014 14:19

Пропадает фокус клавиатуры с игры
 
Запускаю игру, жму мышкой новая игра, и пока я не кликну мышкой на swf не работает ввод с клавиатуры, как это можно исправить?

samana 11.03.2014 14:33

Такое иногда (или всегда) бывает, когда вы сначала подписали сцену на клавиатуру, а потом добавляете на сцену объект(ы). Попробуйте подписаться на клавиатуру после создания объектов, либо в конце передайте фокус сцене вручную -
Код AS3:

stage.focus=stage;


Vansimar 11.03.2014 14:37

а в конце чего? тут в чем проблема, допустим я уже кликнул мышкой,играю клавиатурой, приезжает магазин я покупаю что мне надо, потом твинлайтом я убираю окно магазина и фокус опять пропадает

Добавлено через 3 минуты
я повставлял stage.focus=stage; где только можно и что то не помогло(

samana 11.03.2014 14:49

Жаль... Может попробовать подписать сцену на FocusEvent.KEY_FOCUS_CHANGE, чтобы словить этот момент.

Zebestov 11.03.2014 16:02

До абсурда очевидное, но мало ли — а ты клавиатуру слушаешь точно на самом stage?

Vansimar 11.03.2014 16:06

в классе Hero.as в событии onAddedToStage пишу
Код AS3:

stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
                        stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
                        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
                        stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);


Zebestov 11.03.2014 16:27

На самом деле все эти установки фокуса на stage и прочие манипуляции не нужны. События клавиатуры не всплывут до stage только если об этом специально позаботиться.
Если ты слушаешь stage, а он молчит, ищи проблему в другом месте, возможно в том же onKeyDown/onKeyUp.

Vansimar 11.03.2014 16:37

а что с ними может бть не так?

Zebestov 11.03.2014 16:38

Ну попробуй в обработчике первой строкой написать trace("!!!"); — может события таки обрабатываются, но логика внутри обработчика лажает.

Vansimar 11.03.2014 16:42

Не проходит(

Добавлено через 9 минут
я еще понял что клавиатура выключается после твинлайтовых приездов магазина, твинлайт никак не может отменять события сцены?


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

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