2011-10-27 1 views
0

cairngorm PopupWrapper에서 구성 요소를 사용하고 있습니다. 구성 요소에서 KeyboardEvent.KEY_DOWn 이벤트를 수신하고 싶지만 디스패치하지 않는 것 같습니다. PopupWrapper에 있기 때문입니까? 어쨌든 이벤트를 파견 할 수 있습니까?Flex에서 구성 요소가 PopupWrapper에서 사용될 때 keyDown 이벤트를 전달하지 않습니다.

<fx:Declaration> 
    <cairngorm:PopupWrapper> 
     <mx:UIComponent keyDown="keyDownHandler()" /> 
    </cairngorm:PopupWrapper> 
</fx:Declaration> 
+2

구성 요소에 초점이 맞지 않았습니까? – moropus

+0

어쩌면 구성 요소가 keyDown 이벤트를 전달하지 않는 자식을 가지고 있지 않습니까? – JeffryHouser

답변

1

알아 냈습니다.

PopupWrapper는 IFocusManagerContainer를 구현하는 경우에만 FocusManager를 구성 요소에 추가합니다. 내 구성 요소가 SkinnableComponent를 확장하여 포커스를받지 못했습니다. 그래서 대신 SkinnableContainer에서 확장 된 구성 요소를 만들었습니다. 또한 "열린"이벤트에서 수동으로 포커스를 구성 요소에 설정해야했습니다. 이제 keyDown이 예상대로 전달됩니다.

관련 문제