Как заставить или заблокировать фокус в ActionScript 3? - PullRequest
0 голосов
/ 19 февраля 2010

Я хочу создать диалоговое окно или окно оповещения, в котором DisplayObject будет брать и принудительно фокусировать, пока кнопка «ОК» или что-то еще не снимет блокировку. спасибо.

Ответы [ 3 ]

4 голосов
/ 19 февраля 2010

Простой способ сделать это - сделать ваш «диалог» таким же большим, как сцена, с огромной прозрачной областью вокруг самого диалога.

Прозрачная область может прослушивать любые щелчки мыши, ипросто проглотите их (что предотвратит их дальнейшее возвращение в список отображения).

Чтобы показать предупреждение, просто прикрепите его поверх всего остального, когда пользователь закроет его, уберите егоеще раз.

1 голос
/ 09 ноября 2011

Если вы используете flex и actionscript, просто используйте SkinnablePopUpContainer

var alt:CustomPopUp = new CustomPopUp();
alt.open(this,true) //the second variable is for modal, which will disable view
this.enabled = false; //this will grey out the parent view and provide visual focus to your popup.
1 голос
/ 19 февраля 2010

Чтобы сделать это, вам нужно отключить доступ ко всем объектам в вашем «оповещении» DisplayObject.Есть несколько способов сделать это, здесь я могу обдумать 2:

  1. Проходить по списку отображения и отключать любые экранные объекты в пределах глубины вашего предупреждения.
  2. Обманите его с помощьюблокатор.При отображении оповещения отобразите другой клип (для альфа-канала может быть установлено значение 0), который блокирует пользователя от зависания / щелчка объектов.Для блокировщика может потребоваться немного настройки (buttonMode = true, useHandCursor = false и т. Д.)

Для некоторых это «модальное» поведение существует, поэтому, возможно, нет необходимости заново изобретать колесо,в зависимости от текущей настройки.

Если вы используете среду Flex, у вас есть функциональность, для Flash вы можете использовать Alert Manager от Yahoo!Компоненты Flash Astra :

alert manager thumb

Goodluck,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...