2009-08-03 6 views
4

누구나 AS3에서 경계선이 둥근 모서리가있는 동적 텍스트 필드를 만드는 방법을 알고 있습니까?AS3 둥근 텍스트 필드

둥근 동영상 클립을 만들고 크기를 조정 한 다음 텍스트 뒤에 배치해야 할 수도 있습니다.

시도했지만 변경 사항이 표시되지 않습니다.

var styleRound:StyleSheet = new StyleSheet(); 
styleRound.parseCSS("h4{cornerRadius:10;borderStyle: solid; borderThickness: 1;}"); 
tf.htmlText = "<h4>" + hotspotData.caption + "</h4>"; 
tf.styleSheet = styleRound; 
+0

태그 actionscript-3을 사용하십시오. 더 많은 의견을 얻게됩니다. : D –

+0

고마워! 좋은 생각 – Bryan

답변

8

다음은 available CSS styles for TextFields in ActionScript 3의 목록입니다. 죄송합니다. 코너 반경이 없습니다.

TextField 개체 border property에서 텍스트 필드의 테두리를 켤 수 있습니다. 그러나 구석으로 돌아갈 수있는 부동산은 없습니다.

새 구성 요소를 만들고 테두리를 TextField 아래의 Sprite로 추가하는 것이 좋습니다. 다음과 같이하십시오 :

package 
{ 

import flash.display.Graphics; 
import flash.display.Sprite; 
import flash.text.TextField; 
import flash.text.TextFieldAutoSize; 

public class TextBorder extends Sprite 
{ 
    private static const CORNER_RADIUS:int = 5; 
    // display objects 
    private var background:Sprite; 
    private var field:TextField; 

    // properties 
    private var _text:String; 

    public function TextBorder() 
    { 
     background = new Sprite; 
     field = new TextField; 
     field.autoSize = TextFieldAutoSize.LEFT; 

     addChild(background); 
     addChild(field); 

     // TESTING: 
     text = "Hello World"; 
    } 

    public function set text(newText:String):void 
    { 
     _text = newText; 
     display(); 
    } 

    public function get text():String 
    { 
     return _text; 
    } 

    private function display():void 
    { 
     field.text = _text; 

     var g:Graphics = background.graphics; 
     g.clear(); 
     g.lineStyle(0, 0x0); 
     g.beginFill(0xFFFFFF); 
     g.drawRoundRect(0, 0, field.width, field.height, CORNER_RADIUS); 
    } 
} 

} 
+0

좋은 해결책이지만 g.clear()를 잊어 버렸습니다 ... – back2dos

+0

팁 주셔서 감사합니다 - 한번만 테스트했습니다. 코드 스 니펫을 수정하여 업데이트했습니다. FWIW : 이것은 제작 준비가 안된 코드입니다.) –

0

CSS 스타일을 사용할 수 있습니까? 예 :

TextInput { 
    borderStyle: solid; 
    borderThickness: 1; 
    cornerRadius: 2; 
} 

나는 이것을 테스트하지 않았지만 둥근 모서리가 있어야합니다.

+0

감사. 내가 변경 한 내용을 포함하도록 질문을 편집했지만 여전히 작동하지 않습니다. – Bryan

+0

이러한 속성은 AS3 용 CSS가 아닙니다. 사용 가능한 속성 목록은 다음과 같습니다. http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/text/StyleSheet.html –

0

플래시에서 둥근 사각형을 만들고 자체 클래스 (hotspotBG)로 내 보냈습니다.

var hotspotBackground:hotspotBG = new hotspotBG(); 
hotspotBackground.width = textField.width + 10; 
caption.addChild(hotspotBackground); 
0

2014 년부터는 텍스트 필드 자체를 변경할 수 없습니다. 플래시에서는 허용하지 않습니다. 당신이 할 수있는 일

는 텍스트 필드의 뒤쪽 (사각형 도구는이 작업을 수행하는 가장 쉬운 방법입니다) 다음에 이미지를 추가, 완전히 투명 를 텍스트 필드를 떠나 배경과 테두리, 을 삭제입니다 텍스트 필드가 이미지 위에 있습니다 (z 축 방향)

생각했던 방식이 아닐 수도 있지만 지옥이 작동합니다.

//you are deleting the background and the borders //and replacing them with an image textbox.background=false; textbox.border=false;