ADOBE/ ActionScript

[AS] 액션스크립트 텍스트 필드에 이미지 사용

AlrepondTech 2020. 9. 22. 02:02
반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

출처: http://help.adobe.com/ko_KR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d8d.html

텍스트 표시

 

목차 [가리기]

 

Adobe Flex Builder 및 Flash 제작 도구와 같은 제작 도구는 텍스트 관련 구성 요소나 텍스트 도구 등 텍스트를 표시할 수 있는 여러 옵션을 제공하지만 기본 방식은 텍스트 필드에서 프로그래밍 방식으로 텍스트를 표시하는 것입니다.

텍스트의 유형

텍스트 필드의 텍스트 유형은 해당 소스에 따라 다른 특징을 나타냅니다.

  • 동적 텍스트
  • 동적 텍스트에는 텍스트 파일, XML 파일 또는 원격 웹 서비스와 같은 외부 소스에서 로드되는 내용이 포함됩니다.
  • 입력 텍스트
  • 입력 텍스트는 사용자가 입력하는 텍스트 또는 사용자가 편집할 수 있는 동적 텍스트입니다. 입력 텍스트에 서식을 지정하려면 스타일 시트를 설정하거나 flash.text.TextFormat 클래스를 사용하여 입력 내용의 텍스트 필드에 속성을 할당할 수 있습니다. 자세한 내용은 텍스트 입력 캡처를 참조하십시오.
  • 정적 텍스트
  • 정적 텍스트는 제작 도구로만 만들어집니다. ActionScript 3.0을 사용하는 경우 정적 텍스트 인스턴스를 만들 수 없습니다. 그러나 StaticText 및 TextSnapshot 같은 ActionScript 클래스를 사용하여 기존의 정적 텍스트 인스턴스를 조작할 수는 있습니다. 자세한 내용은 정적 텍스트를 사용한 작업을 참조하십시오.

텍스트 필드 내용 수정

flash.text.TextField.text 속성에 문자열을 할당하여 동적 텍스트를 정의할 수 있습니다. 다음과 같이 속성에 직접 문자열을 할당할 수 있습니다.

myTextField.text = "Hello World";

다음 예제와 같이 text 속성에 스크립트에서 정의한 변수의 값을 할당할 수도 있습니다.

package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
 
    public class TextWithImage extends Sprite 
    { 
        private var myTextBox:TextField = new TextField(); 
        private var myText:String = "Hello World"; 
 
        public function TextWithImage() 
        { 
            addChild(myTextBox); 
            myTextBox.text = myText; 
        } 
    } 
}

그 외의 방법으로 원격 변수의 값을 text 속성에 할당할 수 있습니다. 원격 소스에서 텍스트 값을 로드하는 옵션은 세 가지입니다.

  • flash.net.URLLoader 및 flash.net.URLRequest 클래스는 로컬 또는 원격 위치에서 텍스트의 변수를 로드합니다.
  • FlashVars 속성은 SWF 파일을 호스팅하는 HTML 페이지에 포함되고, 텍스트 변수의 값을 포함할 수 있습니다.
  • flash.net.SharedObject 클래스는 값의 지속적인 저장을 관리합니다. 자세한 내용은 로컬 데이터 저장을 참조하십시오.

HTML 텍스트 표시

flash.text.TextField 클래스에는 htmlText 속성이 있습니다. 이 속성을 사용하면 내용의 서식을 지정할 수 있도록 텍스트 문자열을 HTML 태그가 포함된 하나의 단위로 식별할 수 있습니다. 다음 예제와 같이 문자열 값을 Flash Player 또는 AIR의 htmlText 속성(text 속성이 아님)에 할당하여 텍스트를 HTML로 렌더링해야 합니다.

var myText:String = "<p>This is <b>some</b> content to <i>render</i> as <u>HTML</u> text.</p>"; 
myTextBox.htmlText = myText;

Flash Player 및 AIR에서는 HTML 태그의 하위 집합과 htmlText 속성의 엔터티를 지원합니다. ActionScript 3.0 언어 및 구성 요소 참조 설명서의 flash.text.TextField.htmlText 속성 설명 부분에 지원되는 HTML 태그 및 엔터티가 자세히 설명되어 있습니다.

htmlText 속성을 사용하여 내용을 지정하면 스타일 시트나 textformat 태그를 사용하여 내용의 서식을 관리할 수 있습니다. 자세한 내용은 텍스트 서식 지정을 참조하십시오.

 

 

 

 

반응형

 

728x90

 

 

텍스트 필드에 이미지 사용

내용을 HTML 텍스트로 표시할 때 얻을 수 있는 또 다른 장점은 텍스트 필드에 이미지를 포함할 수 있다는 것입니다. img 태그를 사용하여 로컬 또는 원격의 이미지를 참조하고, 연결된 텍스트 필드 내에 표시할 수 있습니다.

다음 예제에서는 myTextBox라는 텍스트 필드를 만들고 SWF 파일과 같은 디렉토리에 저장된 눈의 JPG 이미지를 표시된 텍스트 내에 포함합니다.

package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
 
    public class TextWithImage extends Sprite 
    { 
        private var myTextBox:TextField  = new TextField(); 
        private var myText:String = "<p>This is <b>some</b> content to <i>test</i> and <i>see</i></p><p><img src='eye.jpg' width='20' height='20'></p><p>what can be rendered.</p><p>You should see an eye image and some <u>HTML</u> text.</p>"; 
 
        public function TextWithImage() 
        { 
            myTextBox.width = 200; 
            myTextBox.height = 200; 
            myTextBox.multiline = true; 
            myTextBox.wordWrap = true; 
            myTextBox.border = true; 
 
            addChild(myTextBox); 
            myTextBox.htmlText = myText; 
        } 
    } 
}

img 태그는 JPEG, GIF, PNG 및 SWF 파일을 지원합니다.

텍스트 필드에서 텍스트 스크롤

텍스트가 텍스트를 표시하는 텍스트 필드보다 긴 경우가 많습니다. 또는 사용자가 한 번에 표시할 수 있는 것보다 많은 텍스트를 입력할 수 있는 입력 필드가 있을 수 있습니다. flash.text.TextField 클래스의 스크롤 관련 속성을 사용하여 긴 내용을 가로 또는 세로로 관리할 수 있습니다.

스크롤 관련 속성에는 TextField.scrollV와 TextField.scrollH, 그리고 maxScrollV와 maxScrollH가 있습니다. 이러한 속성을 사용하여 마우스 클릭이나 키 누르기 등의 이벤트에 응답할 수 있습니다.

다음 예제에서는 크기가 설정되어 있고 필드에서 한 번에 표시할 수 있는 것보다 많은 텍스트가 포함된 텍스트 필드를 만듭니다. 사용자가 텍스트 필드를 클릭하면 텍스트가 세로로 스크롤됩니다.

package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
    import flash.events.MouseEvent; 
 
    public class TextScrollExample extends Sprite 
    { 
        private var myTextBox:TextField = new TextField(); 
        private var myText:String = "Hello world and welcome to the show. It's really nice to meet you. Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again."; 
 
        public function TextScrollExample() 
        { 
            myTextBox.text = myText; 
            myTextBox.width = 200; 
            myTextBox.height = 50; 
            myTextBox.multiline = true; 
            myTextBox.wordWrap = true; 
            myTextBox.background = true; 
            myTextBox.border = true; 
 
            var format:TextFormat = new TextFormat(); 
            format.font = "Verdana"; 
            format.color = 0xFF0000; 
            format.size = 10; 
 
            myTextBox.defaultTextFormat = format; 
            addChild(myTextBox); 
            myTextBox.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll); 
        } 
 
        public function mouseDownScroll(event:MouseEvent):void 
        { 
            myTextBox.scrollV++; 
        } 
    } 
}

 

 

=================================

=================================

=================================

 

 

반응형