패키지 | flash.events |
클래스 | public class FocusEvent |
상속 | FocusEvent Event Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
-
FocusEvent.FOCUS_IN
-
FocusEvent.FOCUS_OUT
-
FocusEvent.KEY_FOCUS_CHANGE
-
FocusEvent.MOUSE_FOCUS_CHANGE
속성 | 정의 주체 | ||
---|---|---|---|
bubbles : Boolean [읽기 전용]
이벤트가 버블링 이벤트인지 여부를 나타냅니다. | Event | ||
cancelable : Boolean [읽기 전용]
해당 이벤트와 연관된 비헤이비어를 차단할 수 있는지 여부를 나타냅니다. | Event | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
currentTarget : Object [읽기 전용]
이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. | Event | ||
direction : String
focusIn 이벤트의 포커스 방향을 지정합니다. | FocusEvent | ||
eventPhase : uint [읽기 전용]
이벤트 흐름에서 현재 단계입니다. | Event | ||
isRelatedObjectInaccessible : Boolean
true이면 relatedObject 속성이 보안 샌드박스와 관련된 이유로 인해 null로 설정됩니다. | FocusEvent | ||
keyCode : uint
keyFocusChange 이벤트를 트리거하기 위해 누른 키의 키 코드 값입니다. | FocusEvent | ||
relatedObject : InteractiveObject
포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스에 대한 참조입니다. | FocusEvent | ||
shiftKey : Boolean
Shift 키 수정자가 활성화되었는지 여부를 나타내며, 활성화된 경우 값이 true입니다. | FocusEvent | ||
target : Object [읽기 전용]
이벤트 대상입니다. | Event | ||
type : String [읽기 전용]
이벤트 유형입니다. | Event |
메서드 | 정의 주체 | ||
---|---|---|---|
FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")
포커스 이벤트와 관련된 특정 정보를 갖는 Event 객체를 만듭니다. | FocusEvent | ||
[재정의]
FocusEvent 객체의 복사본을 하나 만들고 각 속성의 값을 원본과 동일하게 설정합니다. | FocusEvent | ||
사용자 정의 ActionScript 3.0 Event 클래스에서 toString() 메서드를 구현하기 위한 유틸리티 함수입니다. | Event | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
이벤트에서 preventDefault() 메서드가 호출되었는지 여부를 확인합니다. | Event | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
이벤트의 기본 비헤이비어를 취소할 수 있는 경우, 그 비헤이비어를 취소합니다. | Event | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
이벤트 흐름에서 현재 노드 및 그 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | ||
이벤트 흐름에서 현재 노드의 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
[재정의]
FocusEvent 객체의 속성이 모두 포함된 문자열을 반환합니다. | FocusEvent | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
상수 | 정의 주체 | ||
---|---|---|---|
FOCUS_IN : String = "focusIn" [정적]
focusIn 이벤트 객체의 type 속성 값을 정의합니다. | FocusEvent | ||
FOCUS_OUT : String = "focusOut" [정적]
focusOut 이벤트 객체의 type 속성 값을 정의합니다. | FocusEvent | ||
KEY_FOCUS_CHANGE : String = "keyFocusChange" [정적]
keyFocusChange 이벤트 객체의 type 속성 값을 정의합니다. | FocusEvent | ||
MOUSE_FOCUS_CHANGE : String = "mouseFocusChange" [정적]
mouseFocusChange 이벤트 객체의 type 속성 값을 정의합니다. | FocusEvent |
direction | 속성 |
isRelatedObjectInaccessible | 속성 |
isRelatedObjectInaccessible:Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 10, Flash Lite 4 |
true
이면 relatedObject
속성이 보안 샌드박스와 관련된 이유로 인해 null
로 설정됩니다. relatedObject
공칭 값이 다른 샌드박스의 DisplayObject에 대한 참조이면 이 보안 샌드박스 경계를 넘어 양쪽 방향에서 권한이 있지 않는 한 relatedObject
가 null
로 지정됩니다. 권한은 SWF 파일에서 Security.allowDomain()
을 호출하거나, 이미지 파일 서버에서 정책 파일을 제공하거나, 이미지를 로드할 때 LoaderContext.checkPolicyFile
속성을 지정하여 설정됩니다.
구현
public function get isRelatedObjectInaccessible():Boolean
public function set isRelatedObjectInaccessible(value:Boolean):void
관련 API 요소
keyCode | 속성 |
relatedObject | 속성 |
relatedObject:InteractiveObject
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스에 대한 참조입니다. 예를 들어 focusOut
이벤트가 발생할 경우 relatedObject
는 포커스를 얻은 InteractiveObject 인스턴스를 나타냅니다.
이 속성 값은 관련 객체가 없거나 있는 두 경우 모두에서 null
일 수 있지만, 액세스할 수 없는 보안 샌드박스에 있습니다. isRelatedObjectInaccessible()
속성을 사용하여 이러한 이유 중 어느 것이 해당하는지 확인할 수 있습니다.
구현
public function get relatedObject():InteractiveObject
public function set relatedObject(value:InteractiveObject):void
관련 API 요소
shiftKey | 속성 |
FocusEvent | () | 생성자 |
public function FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
포커스 이벤트와 관련된 특정 정보를 갖는 Event 객체를 만듭니다. Event 객체는 매개 변수로 이벤트 리스너에 전달됩니다.
매개 변수type:String — 이벤트 유형입니다. 사용할 수 있는 값에는 FocusEvent.FOCUS_IN , FocusEvent.FOCUS_OUT , FocusEvent.KEY_FOCUS_CHANGE , FocusEvent.MOUSE_FOCUS_CHANGE 가 있습니다.
| |
bubbles:Boolean (default = true ) — Event 객체가 이벤트 흐름의 버블링 단계에 참여하는지 여부를 결정합니다.
| |
cancelable:Boolean (default = false ) — Event 객체를 취소할 수 있는지 여부를 결정합니다.
| |
relatedObject:InteractiveObject (default = null ) — 포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스를 나타냅니다. 예를 들어 focusIn 이벤트가 발생할 경우 relatedObject 는 포커스를 잃은 InteractiveObject를 나타냅니다.
| |
shiftKey:Boolean (default = false ) — Shift 키 수정자가 활성화되었는지 여부를 나타냅니다.
| |
keyCode:uint (default = 0 ) — keyFocusChange 이벤트를 트리거하기 위해 누르는 키의 코드를 나타냅니다.
| |
direction:String (default = "none ") — 대상 대화형 객체가 활성화되는 방향을 나타냅니다. focusIn 을 제외한 모든 이벤트에 대해 FocusDirection.NONE (기본값)으로 설정합니다.
|
관련 API 요소
clone | () | 메서드 |
toString | () | 메서드 |
override public function toString():String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
FocusEvent 객체의 속성이 모두 포함된 문자열을 반환합니다. 문자열의 형식은 다음과 같습니다.
[FocusEvent type=value bubbles=value cancelable=value relatedObject=value shiftKey=value] keyCode=value]
String — FocusEvent 객체의 속성이 모두 포함된 문자열입니다.
|
FOCUS_IN | 상수 |
public static const FOCUS_IN:String = "focusIn"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
focusIn
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
keyCode | 0: keyFocusChange 이벤트에만 적용됩니다. |
relatedObject | 포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스입니다. |
shiftKey | false : keyFocusChange 이벤트에만 적용됩니다. |
target | 방금 포커스를 받은 InteractiveObject 인스턴스입니다. target 은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
|
direction | 포커스가 할당된 방향입니다. 이 속성은 스테이지에 대한 assignFocus() 메서드의 direction 매개 변수 값을 보고합니다. 몇 가지 다른 방법으로 포커스가 변경되면 해당 값은 항상 FocusDirection.NONE 이 됩니다. focusIn 이벤트에만 적용됩니다. 다른 모든 포커스 이벤트의 경우 값이 FocusDirection.NONE 이 됩니다. |
관련 API 요소
FOCUS_OUT | 상수 |
public static const FOCUS_OUT:String = "focusOut"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
focusOut
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
keyCode | 0: keyFocusChange 이벤트에만 적용됩니다. |
relatedObject | 포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스입니다. |
shiftKey | false : keyFocusChange 이벤트에만 적용됩니다. |
target | 방금 포커스를 잃은 InteractiveObject 인스턴스입니다. target 은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
|
관련 API 요소
KEY_FOCUS_CHANGE | 상수 |
public static const KEY_FOCUS_CHANGE:String = "keyFocusChange"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
keyFocusChange
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | true : preventDefault() 메서드를 호출하여 기본 비헤이비어를 취소합니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
keyCode | keyFocusChange 이벤트를 트리거하기 위해 누른 키의 키 코드 값입니다. |
relatedObject | 포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스입니다. |
shiftKey | true 이면 Shift 키 수정자가 활성 상태이고, 그렇지 않으면 false 입니다. |
target | 현재 포커스가 있는 InteractiveObject 인스턴스입니다. target 은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
|
관련 API 요소
MOUSE_FOCUS_CHANGE | 상수 |
public static const MOUSE_FOCUS_CHANGE:String = "mouseFocusChange"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
mouseFocusChange
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | true : preventDefault() 메서드를 호출하여 기본 비헤이비어를 취소합니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
keyCode | 0: keyFocusChange 이벤트에만 적용됩니다. |
relatedObject | 포커스 변경의 영향을 받는 보완적 InteractiveObject 인스턴스입니다. |
shiftKey | false : keyFocusChange 이벤트에만 적용됩니다. |
target | 현재 포커스가 있는 InteractiveObject 인스턴스입니다. target 은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
|
관련 API 요소
FocusEventExample
및 CustomSprite
클래스를 사용하여 Stage에 그려진 항목에 대해 포커스를 사용함으로써 이벤트를 캡처하고 정보를 출력하는 방법을 보여 줍니다. 이는 다음 단계로 이루어집니다.
child
(Sprite 유형) 속성과childCount
(uint 유형) 속성을 선언합니다.for
루프가 좌표 (0,0)에 다섯 개의 연한 파란색 사각형을 생성합니다. 새 CustomSprite 인스턴스에child
를 할당하는 것으로 시작합니다. CustomSprite 객체가 만들어질 때마다 다음이 수행됩니다.- uint 유형의
size
속성이 50픽셀로 설정되고bgColor
가 연한 파랑으로 설정됩니다. - Sprite 클래스의
buttonMode
및useHandCursor
속성이 생성자 내에서true
로 설정됩니다. click
유형의 이벤트 리스너가 관련 구독자인clickHandler()
와 함께 인스턴스화됩니다. 구독자 메서드는 Sprite 유형의 로컬 변수target
을 생성하여 사용자가 클릭한 상자에 할당합니다. 그런 다음 스테이지의 포커스가target
으로 넘어갑니다.draw()
메서드가 호출됩니다. 이 메서드는 Graphics 클래스의beginFill()
,drawRect()
및endFill()
메서드와 인스턴스 속성을 호출하여 50 x 50픽셀의 사각형을 만듭니다.
- uint 유형의
- for 루프에서
configureListeners()
메서드가 호출되어 세 개의 이벤트 리스너/구독자를 인스턴스화합니다.focusIn
/focusInHandler()
는 표시 목록 객체(상자)가 클릭되는click
이벤트가 발생한 뒤에 전달됩니다.focusOut
/focusOutHandler()
는 다른 상자를 클릭하거나 포커스가 스테이지를 벗어날 때(예: Flash Player 외부를 클릭) 전달됩니다.keyFocusChange
/keyFocusChangeHandler()
는 Tab 키나 왼쪽 화살표 또는 오른쪽 화살표 키를 사용하여 표시 목록 객체를 선택할 때 전달됩니다.keyFocusChangeHandler()
메서드는 왼쪽 및 오른쪽 화살표 키를 트랩하지만preventDefault()
메서드를 호출하여 키를 비활성화합니다.
for
루프에서addChild()
에 의해 각 사각형이 표시 목록에 추가되고 모두 동일한 영역에 표시됩니다.- 그런 다음 생성자는
refreshLayout()
을 호출하여 화면 상단(y = 0)에 5픽셀 간격으로 각각의 주황색 사각형을 배치합니다.
package { import flash.display.Sprite; import flash.display.DisplayObject; import flash.events.FocusEvent; import flash.events.IEventDispatcher; public class FocusEventExample extends Sprite { private var gutter:uint = 5; private var childCount:uint = 5; public function FocusEventExample() { var child:Sprite; for(var i:uint; i < childCount; i++) { child = new CustomSprite(); configureListeners(child); addChild(child); } refreshLayout(); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(FocusEvent.FOCUS_IN, focusInHandler); dispatcher.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); dispatcher.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); dispatcher.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject = getChildAt(0); var lastChild:DisplayObject = child; for(var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = lastChild.x + lastChild.width + gutter; lastChild = child; } } private function focusInHandler(event:FocusEvent):void { var target:CustomSprite = CustomSprite(event.target); trace("focusInHandler: " + target.name); } private function focusOutHandler(event:FocusEvent):void { var target:CustomSprite = CustomSprite(event.target); trace("focusOutHandler: " + target.name); } private function keyFocusChangeHandler(event:FocusEvent):void { if(event.keyCode == 39 || event.keyCode == 37){ event.preventDefault() } var target:CustomSprite = CustomSprite(event.target); trace("keyFocusChangeHandler: " + target.name); } private function mouseFocusChangeHandler(event:FocusEvent):void { var target:CustomSprite = CustomSprite(event.target); trace("mouseFocusChangeHandler: " + target.name); } } } import flash.display.Sprite; import flash.events.MouseEvent; class CustomSprite extends Sprite { private var size:uint = 50; private var bgColor:uint = 0x00CCFF; public function CustomSprite() { buttonMode = true; useHandCursor = true; addEventListener(MouseEvent.CLICK, clickHandler); draw(size, size); } private function draw(w:uint, h:uint):void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } private function clickHandler(event:MouseEvent):void { var target:Sprite = Sprite(event.target); trace("clickHandler: " + target.name); stage.focus = target; } }
Tue Jun 12 2018, 03:17 PM Z