Главная / Action Script 3
Пакетfl.managers
Классpublic class FocusManager
НаследованиеFocusManager Inheritance Object
Реализует IFocusManager

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Класс FocusManager управляет фокусом для набора компонентов, по которым можно перемещаться с помощью мыши или клавиатуры в цикле фокусов.

Для передачи фокуса следующему объекту обычно используется клавиша Tab. Фокус перемещается между компонентами по кругу, с первого компонента до последнего, и затем возвращается назад к первому компоненту. В этот цикл входят все компоненты и компоненты с включенной табуляцией в контейнере. Приложение может содержать несколько циклов фокусов.

Экземпляр FocusManager отвечает за один цикл фокусов. Приложение использует различные экземпляры FocusManager для управления каждым циклом фокусов, несмотря на то что основное приложение всегда ассоциировано хотя бы с одним экземпляром FocusManager. Для приложения может потребоваться дополнительный экземпляр FocusManager, если он имеет вызываемые окна, например окна, которые отдельно имеют один или несколько циклов фокусов для компонентов.

Все компоненты, которые должны управляться экземпляром FocusManager, должны реализовать интерфейс fl.managers.IFocusManagerComponent. Для объекта, у которого фокус управляется проигрывателем Flash Player, не требуется реализации интерфейса IFocusManagerComponent.

Класс FocusManager также управляет реализацией кнопки по умолчанию. Если на форме нажата клавиша Enter, кнопка по умолчанию отправляет событие click в зависимости от того, где расположен фокус в этот момент. Кнопка по умолчанию не отправляет событие click, если фокус установлен в текстовом поле или если в компоненте редактируется значение, например в компонентах ComboBox или NumericStepper.

Посмотреть примеры

См. также

IFocusManager
IFocusManagerComponent


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  defaultButton : Button
Определяет или задает текущую кнопку по умолчанию.
FocusManager
  defaultButtonEnabled : Boolean
Определяет или задает значение, указывающее, разрешена ли кнопка по умолчанию.
FocusManager
  nextTabIndex : int
[только для чтения] Определяет следующий уникальный индекс при переходе с помощью клавиши Tab для использования в этом цикле табуляции.
FocusManager
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  showFocusIndicator : Boolean
Определяет или задает значение, указывающее, должен ли компонент в фокусе выделяться визуальным индикатором фокуса.
FocusManager
Общедоступные методы
 МетодОпределено
  
Создает новый экземпляр FocusManager.
FocusManager
  
Активирует экземпляр FocusManager.
FocusManager
  
Деактивирует FocusManager.
FocusManager
  
Возвращает интерактивный объект, содержащий данный объект, если таковой существует.
FocusManager
  
Определяет интерактивный объект, который в настоящий момент имеет фокус.
FocusManager
  
Возвращает интерактивный объект, который получает фокус, когда пользователь нажимает клавишу TAB для перехода к следующему объекту.
FocusManager
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Задает свойству showFocusIndicator значение false и удаляет визуальный индикатор фокуса с объекта, имеющего фокус (если таковой существует).
FocusManager
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
Задает фокус на компоненте IFocusManagerComponent.
FocusManager
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Присваивает свойству showFocusIndicator значение true и рисует визуальный индикатор фокуса на объекте, находящемся в фокусе (если таковой существует).
FocusManager
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
defaultButtonсвойство
defaultButton:Button  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Определяет или задает текущую кнопку по умолчанию.

Кнопка по умолчанию  это кнопка на форме, которая отправляет событие click при нажатии клавиши Enter, в зависимости от положения фокуса в данный момент.



Реализация
    public function get defaultButton():Button
    public function set defaultButton(value:Button):void
defaultButtonEnabledсвойство 
defaultButtonEnabled:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Определяет или задает значение, указывающее, разрешена ли кнопка по умолчанию. Если данное свойство имеет значение true то диспетчер фокуса следить за клавишей Enter. При нажатии клавиши Enter в то время, когда имеет фокус компонент, не являющийся компонентом Button, диспетчер фокуса отправляет событие click на кнопку по умолчанию Если данное свойство имеет значение false, то диспетчер фокуса не следит за клавишей Enter. Компонент, использующий клавишу Enter, устанавливает для данного свойства значение false для предотвращения отправки события click в кнопку по умолчанию, когда пользователь нажимает клавишу Enter.



Реализация
    public function get defaultButtonEnabled():Boolean
    public function set defaultButtonEnabled(value:Boolean):void
nextTabIndexсвойство 
nextTabIndex:int  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Определяет следующий уникальный индекс при переходе с помощью клавиши Tab для использования в этом цикле табуляции.



Реализация
    public function get nextTabIndex():int
showFocusIndicatorсвойство 
showFocusIndicator:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Определяет или задает значение, указывающее, должен ли компонент в фокусе выделяться визуальным индикатором фокуса.



Реализация
    public function get showFocusIndicator():Boolean
    public function set showFocusIndicator(value:Boolean):void
Сведения о конструкторе
FocusManager()Конструктор
public function FocusManager(container:DisplayObjectContainer)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Создает новый экземпляр FocusManager.

Диспетчер фокуса управляет фокусом внутри дочернего объекта DisplayObjectContainer.

Параметры
container:DisplayObjectContainer — DisplayObjectContainer, содержащий диспетчер фокуса или stage.
Сведения о методе
activate()метод
public function activate():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Активирует экземпляр FocusManager.

Экземпляр FocusManager добавляет обработчик событий, позволяющий наблюдать активность клавиатуры и мыши, связанную с фокусом.

deactivate()метод 
public function deactivate():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Деактивирует FocusManager.

Экземпляр FocusManager удаляет обработчик событий, позволяющий наблюдать активность клавиатуры и мыши, связанную с фокусом.

findFocusManagerComponent()метод 
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Возвращает интерактивный объект, содержащий данный объект, если таковой существует. Проигрыватель может установить фокус на подкомпонент компонента Flash. Данный метод определяет, какой интерактивный объект компонента имеет фокус с точки зрения компонента.

Параметры

component:InteractiveObject — Объект, который может иметь фокус уровня проигрывателя.

Возвращает
InteractiveObject — Объект, содержащий component. Если ни одного объекта не найдено, то сам component.
getFocus()метод 
public function getFocus():InteractiveObject

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Определяет интерактивный объект, который в настоящий момент имеет фокус. Adobe рекомендует вызывать данный метод вместо использования объекта Stage, потому что данный метод показывает, какой объект имеет фокус. Объект Stage может вернуть подкомпонент в этом компоненте.

Возвращает
InteractiveObject — Интерактивный объект, который в настоящий момент имеет фокус.
getNextFocusManagerComponent()метод 
public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Возвращает интерактивный объект, который получает фокус, когда пользователь нажимает клавишу TAB для перехода к следующему объекту. Данный метод находит объект, который в настоящий момент имеет фокус, если в приложении нет других доступных объектов.

Параметры

backward:Boolean (default = false) — Если данный параметр имеет значение true, то фокус перемещается в обратном направлении. Данный метод будет искать объект, который должен следующим получить фокус при нажатии комбинации клавиш Shift+Tab.

Возвращает
InteractiveObject — Компонент, принимающий фокус следующим.
hideFocus()метод 
public function hideFocus():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Задает для свойства showFocusIndicator значение false и удаляет визуальный индикатор фокуса с объекта, имеющего фокус (если такой существует).

setFocus()метод 
public function setFocus(component:InteractiveObject):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Задает фокус на компоненте IFocusManagerComponent. Данный метод не проверяет видимость компонента, включенное состояние или любые другие условия.

Параметры

component:InteractiveObject — Объект, который может получить фокус.

showFocus()метод 
public function showFocus():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Присваивает свойству showFocusIndicatortrue значение true и рисует визуальный индикатор фокуса на объекте, находящемся в фокусе (если такой существует).

Примеры Как пользоваться примерами
FocusManagerExample.as

Данный пример показывает, как использовать класс FocusManager для изменения фокуса между компонентами на рабочей области.

Чтобы применить этот пример на практике, выполните следующие действия.

  1. Добавьте компонент TextInput в библиотеку.
  2. Сохраните этот код под именем FocusManagerExample.as в том же каталоге, где и FLA-файл.
  3. Присвойте классу Document в FLA-файле значение FocusManagerExample.
package
{
    import fl.controls.TextInput;
    import fl.managers.FocusManager;
    import flash.display.InteractiveObject;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.utils.Timer;

    public class FocusManagerExample extends Sprite 
    {
        private var fm:FocusManager;
        
        public function FocusManagerExample() {
            buildGridOfTextInputs();

            fm = new FocusManager(this);
            var t:Timer = new Timer(1000);
            t.addEventListener(TimerEvent.TIMER,secondPassed);
            t.start();
        }
        private function buildGridOfTextInputs():void {
            var rowSpacing:uint = 30;
            var colSpacing:uint = 110;
            var totalRows:uint = 4;
            var totalCols:uint = 3;
            var i:uint;
            
            for(i = 0; i < totalRows * totalCols; i++) {
                var ti:TextInput = new TextInput()
                ti.name = "component"+i.toString();
                ti.addEventListener(FocusEvent.FOCUS_IN,focusChange);
                ti.setSize(100,20);
                ti.x = 10 + ((i % totalCols) * colSpacing);
                ti.y = 10 + (Math.floor(i / totalCols) * rowSpacing);
                ti.tabEnabled = true;
                addChild(ti);
            }
        }
        private function secondPassed(e:TimerEvent):void {
            var nextComponent:InteractiveObject = fm.getNextFocusManagerComponent();
            fm.setFocus(nextComponent);    
        }
        
        private function focusChange(e:FocusEvent):void {
            trace("Focus change: " + e.target.name);
        }
    }
}