| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager 클래스는
tab loop와 같이 마우스 또는 키보드로 탐색되는 구성 요소의 집합에 대한 포커스를 관리합니다.
탭 루프는 보통 Tab 키를 사용하여 탐색합니다. 탭 루프에서는 구성 요소 간에 포커스가 원형 패턴으로 포커스가 있는 첫 번째 요소에서 마지막 요소로 이동한 다음 다시 마지막 요소에서 첫 번째 요소로 이동합니다. 탭 루프에는 컨테이너의 모든 구성 요소 및 탭 구성 요소가 포함됩니다. 하나의 응용 프로그램에 여러 탭 루프가 포함될 수 있습니다.
FocusManager 인스턴스는 단일 탭 루프를 처리합니다. 주 응용 프로그램은 항상 최소한 하나의 FocusManager 인스턴스와 연결되어 있지만, 응용 프로그램에서는 다른 FocusManager 인스턴스를 사용하여 포함된 각 탭 루프를 관리합니다. 응용 프로그램에 구성 요소의 탭 루프가 하나 이상 별도로 포함된 팝업 창이 있는 경우 등에는 FocusManager 인스턴스가 추가로 필요할 수 있습니다.
FocusManager 인스턴스에서 관리할 수 있는 모든 구성 요소는 fl.managers.IFocusManagerComponent 인터페이스를 구현해야 합니다. Flash Player에서 포커스를 관리하는 객체는 IFocusManagerComponent 인터페이스를 구현하지 않아도 됩니다.
FocusManager 클래스는 기본 버튼의 구현 방식도 관리합니다. 해당 시점에 포커스가 있는 위치에 따라 양식에서 Enter 키를 누르면 기본 버튼에서 click 이벤트를 전달합니다. 텍스트 영역에 포커스가 있거나 ComboBox 또는 NumericStepper 구성 요소 등의 구성 요소에서 값을 편집하는 중이더라도 기본 버튼에서는 click 이벤트를 전달하지 않습니다.
예제 보기
defaultButton:Button [읽기/쓰기]
| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
현재 기본 버튼을 가져오거나 설정합니다.
기본 버튼은 해당 시점에 포커스가 있는 위치에 따라 Enter 키를 누르면 click 이벤트를 전달하는 양식에 있는 버튼입니다.
구현 public function get defaultButton():Button public function set defaultButton(value:Button):voiddefaultButtonEnabled:Boolean [읽기/쓰기]
| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
기본 버튼의 활성 여부를 나타내는 값을 가져오거나 설정합니다. 이 값을 true로 설정하면 포커스 관리자가 Enter 키를 모니터링하여 Button 구성 요소가 아닌 구성 요소에 포커스가 있을 때 Enter 키를 누를 경우 기본 버튼에 대해 click 이벤트를 전달합니다. 이 값을 false로 설정하면 포커스 관리자가 Enter 키를 모니터링하지 않습니다. Enter 키를 사용하는 구성 요소는 이 속성을 false로 설정하여 사용자가 Enter 키를 누를 때 click 이벤트가 기본 버튼에 대해 전달되지 않도록 합니다.
구현 public function get defaultButtonEnabled():Boolean public function set defaultButtonEnabled(value:Boolean):voidnextTabIndex:int [읽기 전용]
| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
이 탭 루프에서 사용할 다음 고유 탭 인덱스를 가져옵니다.
구현 public function get nextTabIndex():intshowFocusIndicator:Boolean [읽기/쓰기]
| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
포커스가 있는 구성 요소에 포커스의 시각적 표시기를 표시할지 여부를 나타내는 값을 가져오거나 설정합니다.
구현 public function get showFocusIndicator():Boolean public function set showFocusIndicator(value:Boolean):voidpublic function FocusManager(container:DisplayObjectContainer)| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
새 FocusManager 인스턴스를 만듭니다.
포커스 관리자가 DisplayObjectContainer 객체의 자식 내에서 포커스를 관리합니다.
매개 변수 public function activate():void| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager 인스턴스를 활성화합니다.
FocusManager 인스턴스가 포커스 관련 키보드 및 마우스 작업을 모니터링할 수 있도록 하는 이벤트 핸들러를 추가합니다.
public function deactivate():void| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager를 비활성화합니다.
FocusManager가 포커스 관련 키보드 및 마우스 작업을 모니터링할 수 있도록 하는 이벤트 핸들러를 제거합니다.
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
지정된 객체를 포함하는 대화형 객체를 검색합니다. Flash Player가 포커스를 Flash 구성 요소의 하위 구성 요소로 설정할 수 있기 때문에 이 메서드는 구성 요소를 기준으로 포커스가 있는 대화형 객체를 결정합니다.
매개 변수
반환값 public function getFocus():InteractiveObject| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
현재 포커스가 있는 대화형 객체를 가져옵니다. Stage 객체를 사용하는 대신 이 메서드를 호출하여 포커스가 있는 구성 요소를 나타내는 것이 좋습니다. Stage는 해당 구성 요소의 하위 구성 요소를 반환할 수 있습니다.
반환값 public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
사용자가 Tab 키를 눌러 다음 객체를 탐색할 때 포커스를 받을 수 있는 대화형 객체를 검색합니다. 이 메서드는 응용 프로그램에 유효한 다른 객체가 없으면 현재 포커스가 있는 객체를 반환합니다.
매개 변수
| backward:Boolean (default = false) —
이 매개 변수를 true로 설정하면 포커스가 뒤로 이동하여 이 메서드가 Shift+Tab 키 조합을 누를 때 다음 번에 포커스를 받을 객체를 검색합니다.
|
반환값 public function hideFocus():void| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
showFocusIndicator 값을 false로 설정하고 객체에 포커스가 있는 경우 시각적 포커스 표시기를 제거합니다.
public function setFocus(component:InteractiveObject):void| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
IFocusManagerComponent 구성 요소로 포커스를 설정합니다. 이 메서드는 구성 요소의 가시성, 활성화 상태 또는 기타 조건을 확인하지 않습니다.
매개 변수
public function showFocus():void| 런타임 버전: | AIR 1.0 Flash Player 9.0.28.0 |
showFocusIndicator 값을 true로 설정하고 객체에 포커스가 있는 경우 시각적 포커스 표시기를 그립니다.
다음 예제에서는 FocusManager 클래스를 사용하여 스테이지에서 구성 요소 간에 포커스를 변경하는 방법을 보여 줍니다.
예제를 실행하려면 다음 단계를 수행합니다.
- 라이브러리에 TextInput 구성 요소를 추가합니다.
- 이 코드를 FLA 파일과 같은 디렉토리에 FocusManagerExample.as로 저장합니다.
- FLA 파일의 Document 클래스를 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.
Thu Jan 8 2009, 02:16 AM -08:00