패키지flash.events
클래스public class TextEvent
상속TextEvent Inheritance Event Inheritance Object
하위 클래스 DataEvent, ErrorEvent, IMEEvent

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

사용자가 텍스트 필드에 텍스트를 입력하거나 HTML 텍스트 필드의 하이퍼링크를 클릭하면 Flash(r) Player는 TextEvent 객체를 전달합니다. 텍스트 이벤트에는 TextEvent.LINK 유형과 TextEvent.TEXT_INPUT 유형이 있습니다.

예제를 통해 확인하십시오.

참고 사항

flash.text.TextField


Public 속성
 속성다음에 의해 정의됨
 Inheritedbubbles : Boolean
[read-only] 이벤트가 버블링 이벤트인지 여부를 나타냅니다.
Event
 Inheritedcancelable : Boolean
[read-only] 해당 이벤트와 연관된 비헤이비어를 차단할 수 있는지 여부를 나타냅니다.
Event
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
 InheritedcurrentTarget : Object
[read-only] 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
Event
 InheritedeventPhase : uint
[read-only] 이벤트 흐름에서 현재 단계입니다.
Event
 Inheritedprototype : Object
[static] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
 Inheritedtarget : Object
[read-only] 이벤트 대상입니다.
Event
  text : String
textInput 이벤트의 경우, 입력한 문자 또는 일련의 문자입니다.
TextEvent
 Inheritedtype : String
[read-only] 이벤트 유형입니다.
Event
Public 메서드
 메서드다음에 의해 정의됨
  
TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
텍스트 이벤트에 대한 정보가 포함된 Event 객체를 만듭니다.
TextEvent
  
TextEvent 객체의 복사본을 하나 만들고 각 속성의 값을 원본과 동일하게 설정합니다.
TextEvent
 Inherited
formatToString(className:String, ... arguments):String
사용자 정의 Event 클래스에서 toString() 메서드를 구현하기 위한 유틸리티 함수입니다.
Event
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
이벤트에서 preventDefault()가 호출되었는지 여부를 확인합니다.
Event
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
이벤트의 기본 비헤이비어를 취소할 수 있는 경우, 그 비헤이비어를 취소합니다.
Event
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
이벤트 흐름에서 현재 노드 및 그 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다.
Event
 Inherited
이벤트 흐름에서 현재 노드의 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다.
Event
  
TextEvent 객체의 속성이 모두 포함된 문자열을 반환합니다.
TextEvent
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
Public 상수
 상수다음에 의해 정의됨
 InheritedACTIVATE : String = "activate"
[static] activate 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedADDED : String = "added"
[static] added 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[static] addedToStage 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCANCEL : String = "cancel"
[static] cancel 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCHANGE : String = "change"
[static] change 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCLOSE : String = "close"
[static] close 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCOMPLETE : String = "complete"
[static] complete 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCONNECT : String = "connect"
[static] connect 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedDEACTIVATE : String = "deactivate"
[static] deactivate 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedENTER_FRAME : String = "enterFrame"
[static] enterFrame 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedFULLSCREEN : String = "fullScreen"
[static] fullScreen 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedID3 : String = "id3"
[static] id3 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedINIT : String = "init"
[static] init 이벤트 객체의 type 속성 값을 정의합니다.
Event
  LINK : String = "link"
[static] link 이벤트 객체의 type 속성 값을 정의합니다.
TextEvent
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[static] mouseLeave 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedOPEN : String = "open"
[static] open 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedREMOVED : String = "removed"
[static] removed 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[static] removedFromStage 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedRENDER : String = "render"
[static] render 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedRESIZE : String = "resize"
[static] resize 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSCROLL : String = "scroll"
[static] scroll 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSELECT : String = "select"
[static] select 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[static] soundComplete 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[static] tabChildrenChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[static] tabEnabledChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[static] tabIndexChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
  TEXT_INPUT : String = "textInput"
[static] textInput 이벤트 객체의 type 속성 값을 정의합니다.
TextEvent
 InheritedUNLOAD : String = "unload"
[static] unload 이벤트 객체의 type 속성 값을 정의합니다.
Event
속성 정보
text속성
text:String  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

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
Player 버전 : Flash Player 9

텍스트 이벤트에 대한 정보가 포함된 Event 객체를 만듭니다. Event 객체는 매개 변수로 이벤트 리스너에 전달됩니다.

매개 변수
type:String — 이벤트 유형입니다. 이벤트 리스너는 상속된 type 속성을 통해 이 정보에 액세스할 수 있습니다. 사용할 수 있는 값은 TextEvent.LINKTextEvent.TEXT_INPUT입니다.
 
bubbles:Boolean (default = false) — Event 객체가 이벤트 흐름의 버블링 단계에 참여하는지 여부를 결정합니다. 이벤트 리스너는 상속된 bubbles 속성을 통해 이 정보에 액세스할 수 있습니다.
 
cancelable:Boolean (default = false) — Event 객체를 취소할 수 있는지 여부를 결정합니다. 이벤트 리스너는 상속된 cancelable 속성을 통해 이 정보에 액세스할 수 있습니다.
 
text:String (default = "") — 사용자가 입력한 한 자 이상의 텍스트 문자입니다. 이벤트 리스너는 text 속성을 통해 이 정보에 액세스할 수 있습니다.

참고 사항

메서드 정보
clone()메서드
public override function clone():Event

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

TextEvent 객체의 복사본을 하나 만들고 각 속성의 값을 원본과 동일하게 설정합니다.

반환값
Event — 원본과 동일한 속성 값을 갖는 새로운 TextEvent 객체입니다.
toString()메서드 
public override function toString():String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

TextEvent 객체의 속성이 모두 포함된 문자열을 반환합니다. 문자열의 형식은 다음과 같습니다.

[TextEvent type=value bubbles=value cancelable=value text=value]

반환값
String — TextEvent 객체의 속성이 모두 포함된 문자열입니다.
상수 정보
LINK상수
public static const LINK:String = "link"

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

link 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubblestrue
cancelablefalse; 취소할 기본 비헤이비어가 없습니다.
currentTarget현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target클릭한 하이퍼링크가 포함되어 있는 텍스트 필드입니다. target은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
textURL에서 "event:" 이후의 나머지 부분입니다.

참고 사항


예제

이 예제에서는 HTML 텍스트의 하이퍼링크를 클릭하면 텍스트 이벤트가 트리거됩니다. 링크에 따라 시스템의 운영 체제를 기준으로 지정된 웹 사이트로 사용자가 라우팅되거나 사용자가 선택한 반경을 기준으로 원이 그려집니다.

텍스트 필드가 생성되고 htmlText 속성을 사용하여 해당 내용이 HTML 형식의 문자열로 설정됩니다. 뷰어에서 더 잘 식별할 수 있도록 링크에 밑줄이 그어집니다. 마우스를 링크 위에 두면 마우스 포인터가 변경됩니다. 사용자의 마우스 클릭이 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
Player 버전 : Flash Player 9

textInput 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubblestrue
cancelabletrue: preventDefault() 메서드를 호출하여 기본 비헤이비어를 취소합니다.
currentTarget현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target문자를 입력하고 있는 텍스트 필드입니다. target은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다.
text사용자가 입력한 문자 또는 일련의 문자입니다.

참고 사항


예제

다음 예제는 특정 조합 키(암호와 유사)를 생성하는 과정을 보여 줍니다. 이 조합 키는 7개의 영숫자 문자로 이루어지며 두 번째와 다섯 번째 문자 위치는 숫자입니다.

기본 지침, 사용자 입력 및 경고(오류) 메시지용으로 3개의 텍스트 필드가 생성됩니다. textInputHandler() 메서드를 트리거하여 사용자의 텍스트 입력에 응답하기 위한 이벤트 리스너가 추가됩니다. (사용자가 입력할 때마다 TextEvent.TEXT_INPUT 이벤트가 전달됩니다. 텍스트 이벤트는 백스페이스와 같은 키보드 입력에 대한 응답이 아니라 사용자가 텍스트 문자를 입력할 때 전달됩니다. 모든 키보드 이벤트를 잡아내기 위해 KeyboardEvent 이벤트에 대한 리스너를 사용해야 합니다.

textInputHandler() 메서드는 사용자 입력을 제어하고 관리합니다. 우선 preventDefault() 메서드는 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);
        }
    }
}
예제 예제 사용 방법
TextEventExample.as

다음 예제에서는 TextEventExample 클래스를 사용하여 텍스트 필드를 만들고 이러한 필드에 대한 다양한 텍스트 이벤트를 수신하는 방법을 보여 줍니다. 이는 다음 단계로 이루어집니다.
  1. 나중에 사용할 두 개의 URL에 대한 상수를 선언합니다.
  2. 나중에 사용할 TextField 유형의 두 가지 변수를 선언합니다.
  3. 클래스 생성자는 다음 두 가지 메서드를 호출합니다.
    • init()는 TextField 객체를 초기화한 후 객체에 이벤트 리스너를 추가합니다.
    • draw()는 표시 목록에 TextFields를 추가하고 표시할 텍스트를 할당합니다.
  4. 리스너 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);
        }
    }
}




 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/events/TextEvent.html