패키지 | flash.events |
클래스 | public class TextEvent |
상속 | TextEvent Event Object |
하위 클래스 | DataEvent, ErrorEvent, IMEEvent |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
TextEvent.LINK
유형과 TextEvent.TEXT_INPUT
유형이 있습니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
bubbles : Boolean [읽기 전용]
이벤트가 버블링 이벤트인지 여부를 나타냅니다. | Event | ||
cancelable : Boolean [읽기 전용]
해당 이벤트와 연관된 비헤이비어를 차단할 수 있는지 여부를 나타냅니다. | Event | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
currentTarget : Object [읽기 전용]
이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. | Event | ||
eventPhase : uint [읽기 전용]
이벤트 흐름에서 현재 단계입니다. | Event | ||
target : Object [읽기 전용]
이벤트 대상입니다. | Event | ||
text : String
textInput 이벤트의 경우, 입력한 문자 또는 일련의 문자입니다. | TextEvent | ||
type : String [읽기 전용]
이벤트 유형입니다. | Event |
메서드 | 정의 주체 | ||
---|---|---|---|
텍스트 이벤트에 대한 정보가 포함된 Event 객체를 만듭니다. | TextEvent | ||
[재정의]
TextEvent 객체의 복사본을 하나 만들고 각 속성의 값을 원본과 동일하게 설정합니다. | TextEvent | ||
사용자 정의 ActionScript 3.0 Event 클래스에서 toString() 메서드를 구현하기 위한 유틸리티 함수입니다. | Event | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
이벤트에서 preventDefault() 메서드가 호출되었는지 여부를 확인합니다. | Event | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
이벤트의 기본 비헤이비어를 취소할 수 있는 경우, 그 비헤이비어를 취소합니다. | Event | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
이벤트 흐름에서 현재 노드 및 그 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | ||
이벤트 흐름에서 현재 노드의 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
[재정의]
TextEvent 객체의 속성이 모두 포함된 문자열을 반환합니다. | TextEvent | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
상수 | 정의 주체 | ||
---|---|---|---|
LINK : String = "link" [정적]
link 이벤트 객체의 type 속성 값을 정의합니다. | TextEvent | ||
TEXT_INPUT : String = "textInput" [정적]
textInput 이벤트 객체의 type 속성 값을 정의합니다. | TextEvent |
text | 속성 |
text:String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
textInput
이벤트의 경우, 입력한 문자 또는 일련의 문자입니다. link
이벤트의 경우, <a>
태그의 href
특성에서 event
특성의 텍스트입니다.
구현
public function get text():String
public function set text(value:String):void
예제 ( 예제 사용 방법 )
link
이벤트가 전달되는 것을 보여 줍니다.
import flash.text.TextField; import flash.events.TextEvent; var tf:TextField = new TextField(); tf.htmlText = "<a href='event:myEvent'>Click Me.</a>"; tf.addEventListener("link", clickHandler); addChild(tf); function clickHandler(e:TextEvent):void { trace(e.type); // link trace(e.text); // myEvent }
TextEvent | () | 생성자 |
public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
텍스트 이벤트에 대한 정보가 포함된 Event 객체를 만듭니다. Event 객체는 매개 변수로 이벤트 리스너에 전달됩니다.
매개 변수type:String — 이벤트 유형입니다. 이벤트 리스너는 상속된 type 속성을 통해 이 정보에 액세스할 수 있습니다. 사용할 수 있는 값에는 TextEvent.LINK 와 TextEvent.TEXT_INPUT 이 있습니다.
| |
bubbles:Boolean (default = false ) — Event 객체가 이벤트 흐름의 버블링 단계에 참여하는지 여부를 결정합니다. 이벤트 리스너는 상속된 bubbles 속성을 통해 이 정보에 액세스할 수 있습니다.
| |
cancelable:Boolean (default = false ) — Event 객체를 취소할 수 있는지 여부를 결정합니다. 이벤트 리스너는 상속된 cancelable 속성을 통해 이 정보에 액세스할 수 있습니다.
| |
text:String (default = " ") — 사용자가 입력한 한 자 이상의 텍스트 문자입니다. 이벤트 리스너는 text 속성을 통해 이 정보에 액세스할 수 있습니다.
|
관련 API 요소
clone | () | 메서드 |
toString | () | 메서드 |
LINK | 상수 |
public static const LINK:String = "link"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
link
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 클릭한 하이퍼링크가 포함되어 있는 텍스트 필드입니다. target 은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다. |
text | URL에서 "event:" 이후의 나머지 부분입니다. |
관련 API 요소
예제 ( 예제 사용 방법 )
텍스트 필드가 생성되고 htmlText
속성을 사용하여 해당 내용이 HTML 형식의 문자열로 설정됩니다. 사용자가 쉽게 식별할 수 있도록 링크에 밑줄이 표시됩니다. Adobe Flash Player는 포인터가 링크 위에 있을 때만 마우스 포인터를 변경합니다. 사용자의 마우스 클릭이 ActionScript 메서드를 호출하도록 링크의 URL이 "event:"
문자열로 시작하며 TextEvent.LINK
이벤트에 대한 리스너가 추가됩니다.
사용자가 링크를 클릭하면 트리거되는 linkHandler()
메서드는 텍스트 필드의 모든 링크 이벤트를 관리합니다. 첫 번째 if 문은 "event:"
문자열 뒤에 나오는 URL의 나머지 부분이 있는 이벤트의 text
속성을 확인합니다. 사용자가 운영 체제의 링크를 클릭하면 시스템의 Capabilities.os
속성에서 가져온 사용자의 현재 운영 체제 이름을 사용하여 사용자를 지정된 웹 사이트로 보냅니다. 그렇지 않으면 이벤트의 text
속성을 통해 전달한 선택된 반경 크기를 사용하여 텍스트 필드 아래에 원을 그립니다. 사용자가 반경 링크를 클릭할 때마다 이전에 그린 원이 지워지고 선택한 반경 크기로 새로운 빨간색 원이 그려집니다.
package { import flash.display.Sprite; import flash.events.TextEvent; import flash.errors.IOError; import flash.events.IOErrorEvent; import flash.system.Capabilities; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Shape; import flash.display.Graphics; public class TextEvent_LINKExample extends Sprite { private var myCircle:Shape = new Shape(); public function TextEvent_LINKExample() { var myTextField:TextField = new TextField(); myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.multiline = true; myTextField.background = true; myTextField.htmlText = "Draw a circle with the radius of <u><a href=\"event:20\">20 pixels</a></u>.<br>" + "Draw a circle with the radius of <u><a href=\"event:50\">50 pixels</a></u>.<br><br>" + "<u><a href=\"event:os\">Learn about your operating system.</a></u><br>"; myTextField.addEventListener(TextEvent.LINK, linkHandler); this.addChild(myTextField); this.addChild(myCircle); } private function linkHandler(e:TextEvent):void { var osString:String = Capabilities.os; if(e.text == "os") { if (osString.search(/Windows/) != -1 ){ navigateToURL(new URLRequest("http://www.microsoft.com/"), "_self"); }else if (osString.search(/Mac/) != -1 ) { navigateToURL(new URLRequest("http://www.apple.com/"), "_self"); } else if (osString.search(/linux/i)!= -1) { navigateToURL(new URLRequest("http://www.tldp.org/"), "_self"); } } else { myCircle.graphics.clear(); myCircle.graphics.beginFill(0xFF0000); myCircle.graphics.drawCircle(100, 150, Number(e.text)); myCircle.graphics.endFill(); } } } }
TEXT_INPUT | 상수 |
public static const TEXT_INPUT:String = "textInput"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
textInput
이벤트 객체의 type
속성 값을 정의합니다.
참고: Delete 또는 백스페이스 키의 경우 이 이벤트가 전달되지 않습니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | true |
cancelable | true : preventDefault() 메서드를 호출하여 기본 비헤이비어를 취소합니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 문자를 입력하고 있는 텍스트 필드입니다. target은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다. |
text | 사용자가 입력한 문자 또는 일련의 문자입니다. |
관련 API 요소
예제 ( 예제 사용 방법 )
기본 지침, 사용자 입력 및 경고(오류) 메시지용으로 3개의 텍스트 필드가 생성됩니다. textInputHandler()
메서드를 트리거하여 사용자의 텍스트 입력에 응답하기 위한 이벤트 리스너가 추가됩니다. 사용자가 텍스트를 입력할 때마다 TextEvent.TEXT_INPUT
이벤트가 전달됩니다.
참고: 텍스트 이벤트는 백스페이스와 같은 키보드 입력에 대한 응답이 아니라 사용자가 문자를 입력할 때 전달됩니다. 모든 키보드 이벤트를 포착하려면 KeyboardEvent
이벤트의 리스너를 사용합니다.
textInputHandler()
메서드는 사용자 입력을 제어하고 관리합니다. preventDefault()
메서드는 Adobe Flash Player가 입력 텍스트 필드에 텍스트를 즉시 표시하지 못하도록 하는 데 사용됩니다. 응용 프로그램이 필드 업데이트를 담당합니다. 사용자가 이미 입력한 문자(result
문자열)의 삭제 또는 수정을 취소할 수 있도록 사용자가 새 문자를 입력할 때 입력 텍스트 필드의 내용이 result
문자열에 재할당됩니다. 또한 일관성 있는 사용자 환경을 만들기 위해 setSelection()
메서드가 텍스트 필드에서 마지막으로 선택한 문자 뒤에 삽입점(캐럿)을 배치합니다.
textInputHandler()
메서드의 첫 번째 if 문은 조합 키의 두 번째 및 다섯 번째 문자 위치에 대한 입력을 검사하는데, 해당 문자가 숫자여야 합니다. 사용자 입력이 정확하면 updateCombination()
메서드가 호출되고 조합 키 문자열(result
)이 사용자 입력과 함께 추가됩니다. 또한 updateCombination()
메서드는 삽입점을 선택한 문자 뒤로 이동합니다. 7개의 문자가 입력되면 textInputHandler()
메서드의 마지막 if 문이 inputTextField
텍스트 필드 유형을 INPUT
에서 DYNAMIC
으로 변경하는데, 이는 사용자가 더 이상 입력하거나 내용을 변경할 수 없다는 의미입니다.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; public class TextEvent_TEXT_INPUTExample extends Sprite { private var instructionTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var warningTextField:TextField = new TextField(); private var result:String = ""; public function TextEvent_TEXT_INPUTExample() { instructionTextField.x = 10; instructionTextField.y = 10; instructionTextField.background = true; instructionTextField.autoSize = TextFieldAutoSize.LEFT; instructionTextField.text = "Please enter a value in the format A#AA#AA,\n" + "where 'A' represents a letter and '#' represents a number.\n" + "(Note that once you input a character you can't change it.)" ; inputTextField.x = 10; inputTextField.y = 70; inputTextField.height = 20; inputTextField.width = 75; inputTextField.background = true; inputTextField.border = true; inputTextField.type = TextFieldType.INPUT; warningTextField.x = 10; warningTextField.y = 100; warningTextField.autoSize = TextFieldAutoSize.LEFT; inputTextField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); this.addChild(instructionTextField); this.addChild(inputTextField); this.addChild(warningTextField); } private function textInputHandler(event:TextEvent):void { var charExp:RegExp = /[a-zA-z]/; var numExp:RegExp = /[0-9]/; event.preventDefault(); inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); if (inputTextField.text.length == 1 || inputTextField.text.length == 4) { if(numExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need a single digit number."; } }else { if(charExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need an alphabet character."; } } if(inputTextField.text.length == 7) { inputTextField.type = TextFieldType.DYNAMIC; instructionTextField.text = "CONGRATULATIONS. You've done."; } } private function updateCombination(s:String):void { warningTextField.text = ""; result += s; inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); } } }
- 나중에 사용할 두 개의 URL에 대한 상수를 선언합니다.
- 나중에 사용할 TextField 유형의 두 가지 변수를 선언합니다.
- 클래스 생성자는 다음 두 가지 메서드를 호출합니다.
init()
는 TextField 객체를 초기화한 후 객체에 이벤트 리스너를 추가합니다.draw()
는 표시 목록에 TextFields를 추가하고 표시할 텍스트를 할당합니다.
- 리스너
linkHandler()
및textInputHandler()
는 이벤트 유형에 따라 이벤트에 응답합니다.linkHandler()
메서드는 웹 브라우저가 열려 있지 않을 경우 웹 브라우저를 열고 클릭한 URL로 이동합니다.textInputHandler()
메서드는 키를 누를 때마다 해당 텍스트 필드에 단순히 정보를 표시합니다.
참고: 이 예제에서 나오는 도메인은 가공의 도메인이므로 [yourDomain]
을 실제 도메인으로 바꿔야 합니다.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; import flash.events.TextEvent; import flash.net.URLRequest; import flash.net.navigateToURL; public class TextEventExample extends Sprite { private const DOMAIN_1_URL:String = "http://www.[yourDomain].com"; private const DOMAIN_2_URL:String = "http://www.[yourDomain].com"; private var linkTxt:TextField; private var textInputTxt:TextField; public function TextEventExample() { init(); draw(); } private function init():void { linkTxt = new TextField(); linkTxt.addEventListener(TextEvent.LINK, linkHandler); linkTxt.height = 60; linkTxt.autoSize = TextFieldAutoSize.LEFT; linkTxt.multiline = true; textInputTxt = new TextField(); textInputTxt.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); textInputTxt.type = TextFieldType.INPUT; textInputTxt.background = true; textInputTxt.border = true; textInputTxt.height = 20; } private function draw():void { addChild(linkTxt); linkTxt.htmlText += createLink(DOMAIN_1_URL, "Click to go to first domain"); linkTxt.htmlText += "<br />"; linkTxt.htmlText += createLink(DOMAIN_2_URL, "Click to go to second domain"); addChild(textInputTxt); textInputTxt.y = linkTxt.height; textInputTxt.text = "type here"; } private function createLink(url:String, text:String):String { var link:String = ""; link += "<font color='#0000FF'>"; link += "<u>"; link += "<b>"; link += "<a href='event:" + url + "'>" + text + "</a>"; link += "</b>"; link += "</u>"; link += "</font>"; return link; } private function linkHandler(e:TextEvent):void { var request:URLRequest = new URLRequest(e.text); navigateToURL(request); } private function textInputHandler(e:TextEvent):void { trace(">> ============================"); trace(">> e.text: " + e.text); trace(">> textInputTxt.text: " + textInputTxt.text); } } }
Tue Jun 12 2018, 03:17 PM Z