Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Класс FocusManager управляет фокусом для набора компонентов, по которым можно перемещаться с помощью мыши или клавиатуры в
цикле фокусов.
Для передачи фокуса следующему объекту обычно используется клавиша Tab. Фокус перемещается между компонентами по кругу, с первого компонента до последнего, и затем возвращается назад к первому компоненту. В этот цикл входят все компоненты и компоненты с включенной табуляцией в контейнере. Приложение может содержать несколько циклов фокусов.
Экземпляр FocusManager отвечает за один цикл фокусов. Приложение использует различные экземпляры FocusManager для управления каждым циклом фокусов, несмотря на то что основное приложение всегда ассоциировано хотя бы с одним экземпляром FocusManager. Для приложения может потребоваться дополнительный экземпляр FocusManager, если он имеет вызываемые окна, например окна, которые отдельно имеют один или несколько циклов фокусов для компонентов.
Все компоненты, которые должны управляться экземпляром FocusManager, должны реализовать интерфейс fl.managers.IFocusManagerComponent. Для объекта, у которого фокус управляется проигрывателем Flash Player, не требуется реализации интерфейса IFocusManagerComponent.
Класс FocusManager также управляет реализацией кнопки по умолчанию. Если на форме нажата клавиша Enter, кнопка по умолчанию отправляет событие click
в зависимости от того, где расположен фокус в этот момент. Кнопка по умолчанию не отправляет событие click
, если фокус установлен в текстовом поле или если в компоненте редактируется значение, например в компонентах ComboBox или NumericStepper.
Посмотреть примеры
defaultButton:Button
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Определяет или задает текущую кнопку по умолчанию.
Кнопка по умолчанию это кнопка на форме, которая отправляет событие click
при нажатии клавиши Enter, в зависимости от положения фокуса в данный момент.
Реализация public function get defaultButton():Button
public function set defaultButton(value:Button):void
defaultButtonEnabled:Boolean
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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:int
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Определяет следующий уникальный индекс при переходе с помощью клавиши Tab для использования в этом цикле табуляции.
Реализация public function get nextTabIndex():int
showFocusIndicator:Boolean
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Определяет или задает значение, указывающее, должен ли компонент в фокусе выделяться визуальным индикатором фокуса.
Реализация public function get showFocusIndicator():Boolean
public function set showFocusIndicator(value:Boolean):void
public function FocusManager(container:DisplayObjectContainer)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Создает новый экземпляр FocusManager.
Диспетчер фокуса управляет фокусом внутри дочернего объекта DisplayObjectContainer.
Параметры public function activate():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Активирует экземпляр FocusManager.
Экземпляр FocusManager добавляет обработчик событий, позволяющий наблюдать активность клавиатуры и мыши, связанную с фокусом.
public function deactivate():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Деактивирует FocusManager.
Экземпляр FocusManager удаляет обработчик событий, позволяющий наблюдать активность клавиатуры и мыши, связанную с фокусом.
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Возвращает интерактивный объект, содержащий данный объект, если таковой существует. Проигрыватель может установить фокус на подкомпонент компонента Flash. Данный метод определяет, какой интерактивный объект компонента имеет фокус с точки зрения компонента.
Параметры
| component:InteractiveObject — Объект, который может иметь фокус уровня проигрывателя.
|
Возвращает | InteractiveObject — Объект, содержащий component . Если ни одного объекта не найдено, то сам component .
|
public function getFocus():InteractiveObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Определяет интерактивный объект, который в настоящий момент имеет фокус. Adobe рекомендует вызывать данный метод вместо использования объекта Stage, потому что данный метод показывает, какой объект имеет фокус. Объект Stage может вернуть подкомпонент в этом компоненте.
Возвращает public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Возвращает интерактивный объект, который получает фокус, когда пользователь нажимает клавишу TAB для перехода к следующему объекту. Данный метод находит объект, который в настоящий момент имеет фокус, если в приложении нет других доступных объектов.
Параметры
| backward:Boolean (default = false ) — Если данный параметр имеет значение true , то фокус перемещается в обратном направлении. Данный метод будет искать объект, который должен следующим получить фокус при нажатии комбинации клавиш Shift+Tab.
|
Возвращает public function hideFocus():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Задает для свойства showFocusIndicator
значение false
и удаляет визуальный индикатор фокуса с объекта, имеющего фокус (если такой существует).
public function setFocus(component:InteractiveObject):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Задает фокус на компоненте IFocusManagerComponent. Данный метод не проверяет видимость компонента, включенное состояние или любые другие условия.
Параметры
public function showFocus():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Присваивает свойству showFocusIndicatortrue
значение true
и рисует визуальный индикатор фокуса на объекте, находящемся в фокусе (если такой существует).
Данный пример показывает, как использовать класс FocusManager для изменения фокуса между компонентами на рабочей области.
Чтобы применить этот пример на практике, выполните следующие действия.
- Добавьте компонент TextInput в библиотеку.
- Сохраните этот код под именем FocusManagerExample.as в том же каталоге, где и FLA-файл.
- Присвойте классу 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);
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00