2013-07-18 2 views
1

이 코드는 텍스트를 화면에 렌더링하지 않습니다. 변경,AS3 - TextField : 포함 글꼴

drawText.embedFonts = false; 

텍스트를 렌더링하지만 글꼴 크기가 변경되지 않거나 색상이 변경되지 않습니다.

package { 

import flash.display.Sprite; 
import flash.text.TextField; 
import flash.text.TextFormat; 
import flash.text.*; 

public class DrawText extends Sprite { 

    private var drawText:TextField; 
    private var myFormat:TextFormat; 

    [Embed(source="c:/windows/fonts/verdana.ttf", fontFamily="Verdana", embedAsCFF="false")] 
    private var verdana:Class; 
    public function DrawText(mX:int,mY:int){ 

     myFormat = new TextFormat("Verdana"); 
     myFormat.size = 32; 
     myFormat.color = 0x00FFFF; 

     drawText = new TextField(); 
     drawText.embedFonts = true; 
     drawText.autoSize = TextFieldAutoSize.LEFT; 
     drawText.selectable = false; 
     drawText.type = "dynamic"; 
     drawText.multiline=true; 
     drawText.wordWrap=true; 
     drawText.x = 128; 
     drawText.y = 128; 
     drawText.text = "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST"; 
     drawText.defaultTextFormat = myFormat; 
     addChild(drawText); 

    }//END constructor 

}//END class 

}//END package 

정말 도움이 되었으면 좋겠네요. Flash Builder 4.6을 사용하고 있습니다.

답변

5

당신은 text의 설정 이전 defaultTextFormat을 적용하거나 존재하는 텍스트 TextField.setTextFormat를 사용해야합니다

UPD :

Font.registerFont(verdana); 

UPD2을 : 당신이 사용하기 전에 글꼴 클래스를 등록해야 embedFonts에 관해서는 :

예 (주제의 코드 수정) :

//set defaultTextFormat before set text 
    //and use setTextFormat to format existed text 
    drawText.defaultTextFormat = myFormat; 
    drawText.setTextFormat(myFormat); 
    drawText.text = "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST"; 
+0

너는 다만 저를 때렸다! 나는 그걸 알아 냈어! 나를 미치게했다! 이것은 답변이지만 당신은 너무 빨리 응답하지 못했습니다. 아직 표시 할 수 없습니다! 감사! –

+0

예를 들어 주시겠습니까? 덕분에 ... 나는 일부 문제에 직면하고있다 – Erick

+0

답변이 업데이트되었습니다) – fsbmain

1

너는 사용해야한다 drawText.setTextFormat(myFormat);