change
또는 textInput
이벤트를 사용하여 TextInput 컨트롤에서 사용자 입력을 캡처해야합니까? 왜?Flex TextInput 컨트롤에서 사용자 입력 캡처 : 사용할 이벤트는 무엇입니까?
답변
textInput
은 사용자가 입력란에 텍스트를 입력 한 경우에만 전달됩니다. 반면에 change
은 사용자가 커밋 한 모든 변경 사항에 대해 전달됩니다. 예를 들어, 사용자가 텍스트의 일부를 삭제하면 change
이벤트 만 전달됩니다.
flash.events.TextEvent.TEXT_INPUT
: 텍스트 코드를 통해 수정 될 때
이들 중 어느
가 전달됩니다. " 사용자 유형의 컨트롤에 텍스트를 삭제하거나 붙여 넣기 할 때 전달"(단어가 "삭제"를 무시 - 난 그냥 시도와 텍스트가 사용자에 의해 삭제 될 때이 이벤트가 하지 파견입니다)
"TextInput 컨트롤의 텍스트가 사용자 입력을 통해 변경 될 때 전달됩니다. 데이터 바인딩 또는 ActionScript를 사용하는 경우이 이벤트가 발생하지 않습니다. 코드를 변경하려면. "
때 필드 (일반적으로 텍스트 필드 밖으로 포커스를 이동하여) 변경,하지만이 이벤트도 전달됩니다 기억 또한 사용자가 "커밋"할 때 전달되는 valueCommit
이벤트를 사용할 수 있습니다 값은 프로그래밍 방식으로 변경됩니다.
대단한 대답은 hasseg입니다. 담당자가 충분하다면 투표 할 수 있습니다.
사용자 입력을 캡처하는 대상에 따라 TextInput 구성 요소를 서브 클래스로 만들고 change 및 textInput 이벤트에 대한 내부 수신기를 재정의 할 수 있습니다.
당신이 이것을하고 싶어하는 이유가 많이 있는지는 모르겠지만 최근에 붙여 넣은 라인 브레이크가 '\ r'으로 나타나게하는 OS X의 버그를 다루기 위해 했었습니다. '\ n'대신.
this.addEventListener(Event.CHANGE, textFieldChangeListener);
this.addEventListener(TextEvent.TEXT_INPUT,textFieldInputListener);
을 그리고 청취자 방법과 실행하려는 코드를 추가 :
당신이해야 할 모든 당신의 서브 클래스 개체의 생성자에서 다음과 같은 수퍼 후() 호출을 추가합니다.
입력 된 각 문자에 대해 Event.CHANGE 및 TextEvent.TEXT_INPUT 이벤트가 트리거됩니다. 주어진 TextInput 필드에 대해 한 번만 트리거하는 이벤트가 필요하면 FocusEvent.FOCUS_OUT을 사용하십시오.
같은 이벤트 .CHANGE 및 TextEvent.TEXT_INPUT,이 이벤트는 프로그래밍 방식으로 값을 변경하는 것이 아니라 사용자 입력에 대해서만 트리거합니다. TEXT_INPUT
및 KEY_DOWN
할 -
FOCUS_OUT을 사용하면 필드 당 한 번만 트리거된다는 것은 사실이지만 사용자가 값을 변경했는지 여부를 알 수 없으므로 FOCUS_OUT을 사용하여이를 수행 한 것이 실현되지 않았다는 것을 깨달았습니다. – hrabinowitz
위의 hasseg 노트처럼 CHANGE가 TextInput 필드에 대한 사용자 변경 사항을 청취하는 가장 좋은 선택 인 것으로 보입니다. 그러나 사용자가 control-C를 입력하여 필드 값을 복사하면 CHANGE 이벤트도 트리거됩니다. – hrabinowitz
CHANGE
나던 당신에게 생각의 변경 사항을을 말한다.
그러나 최종 결과를 사용해야 할 경우 CHANGE 이벤트를 처리 할 때 TextInput에서 전체 텍스트를 가져올 수 있습니다. –
- 1. 목록보기 컨트롤에서 키보드 입력 캡처
- 2. 사용자가 Flex TextInput 컨트롤에서 Tab 문자를 입력하도록 허용하려면 어떻게합니까?
- 3. Adobe Flex - 쉼표로 어지러운 Textinput
- 4. 스타일 Textinput Flex DataGrid의 ItemRenderer
- 5. 사용할 jquery 이벤트는 무엇입니까?
- 6. 동적 컨트롤에서 사용자 입력 받기
- 7. Flex TextInput 왼쪽 클릭 - 부모 Steals 포커스
- 8. 사용자 정의 컨테이너 컨트롤에서 발생시키는 KeyDown 이벤트는 어떻게 얻습니까?
- 9. Flex TextInput 컨트롤 : 검색 스타일 렌더링
- 10. ActionScript 3 Newb : TextInput 이벤트를 입력 하시겠습니까?
- 11. 업데이트 할 때 사용할 GridView 이벤트는 무엇입니까?
- 12. 이미지를 슬라이드하는 데 사용할 터치 이벤트는 무엇입니까?
- 13. 리눅스에서 입력 캡처
- 14. 캡처 키 입력
- 15. 키 입력 캡처
- 16. jQuery를 사용자 정의 이벤트는
- 17. SkinnableComponent로 모든 SkinSparts를 사용할 수있는 경우에 발생하는 이벤트는 무엇입니까?
- 18. QTKit 캡처 : 사용할 프레임 크기는 무엇입니까?
- 19. 이미지 입력의 onclick 이벤트는 버튼 내가 입력 텍스트 상자에 입력 쳤을 때
- 20. WinAPI를 사용하여 ProBrowser 컨트롤에서 데이터 캡처
- 21. 웹 브라우저 컨트롤에서 모든 요청과 응답 캡처?
- 22. innosetup - 마법사 페이지 컨트롤에서 이벤트 캡처
- 23. NullReferenceException 사용자 컨트롤에서 핸들
- 24. MsBuild에서 사용하기위한 DOS 입력 읽기/캡처
- 25. '무제한'동적 컨트롤에서 데이터베이스에 값 입력
- 26. 입력하는 동안 TextInput 내부의 문자를 제거 하시겠습니까? (Flex 4.5)
- 27. DataBound 이벤트는 ASP.Net의 DataList 컨트롤에 사용할 수 없습니다.
- 28. 청취자를 생성하는 JEditorPane 이벤트는 무엇입니까?
- 29. 사용자 정의 컨트롤에서 TemplateBinding
- 30. WPForm의 WindowsFormsHost 컨트롤에서 트랩 키보드 입력
답을 명확히 해 주셔서 감사합니다. 참고 사항 : 나는 몇 가지 테스트를 수행하고'text.currentTarget.text'를 사용하여'textInput' 이벤트에 대한 이벤트 처리기의'text' 속성에 액세스 할 때 값이' text'_efore 이벤트를 트리거 한 키 누르기 이전. –
그건 나에게 사실이 아니에요, 적어도 Flex 4.5에서는 (나는 Flex 4도 같음) spark TextInput을 사용하지 않았습니다. 변경 이벤트에서 마지막 텍스트 값을 얻습니다. 이전에 변경 이벤트도 전달됩니다. – Enrique