2012-03-22 2 views
5

이 글의 머리말을 말하고 싶습니다. 나는 명백한 것을 놓치고 있을지도 모른다.actionscript 만든 텍스트 필드에 포함 된 글꼴이 표시되지 않음

저는 Flash CS5에서 Actionscript 3으로 작업하고 있습니다. ActionScript를 사용하여 텍스트 필드를 만들고 텍스트로 채 웁니다. 필자는 "글꼴 임베딩"창을 사용하여 내 프로젝트에 내 글꼴을 삽입했습니다. 그러나 텍스트 필드를 만들 코드가 실행될 때 "embedFont = true;"이면 글꼴이 보이지 않습니다. 커서를 가져 가면 커서가 계속 변경되므로 커서가 표시됩니다. 또는 적어도 텍스트 상자가 있습니다. 이미 스테이지에있는 텍스트가 삽입 된 동적 텍스트 필드는 영향을받지 않는 것 같습니다.

나는 임베디드 글꼴 개요 형식을 변경하려고 시도하지 않았으며 작동하지 않았습니다. actionscript를 통해 "embed"태그로 글꼴을 직접 포함 시키려고했지만 CS5에서 작동하지 않는 것 같습니다. 아니면 내가 무엇을하고 있는지 알지 못합니다. 제공된 코드에서 볼 수 있듯이 글꼴을 "등록"하려고했지만 성공하지 못했습니다. 나는 시도했다 :

var font:Font = new screenfont(); //"screenfont" is the name from Embedding Fonts  

var format:TextFormat = new TextFormat(); 

format.font = screenfont.fontName; 

거푸집 없음.

나는 임베딩에 대한 몇 가지 다른 튜토리얼을 따라 왔으며, 많은 혼란스럽고 혼란스러운 정보를 접했습니다. 나는이 주제와 관련된 몇 가지 다른 글을 읽었으나 아직까지 가능한 해결책을 찾지 못했습니다. 나는이 명확한 그림을 제공하겠습니다

Font.registerFont(screenfont); 

      //TextFormat 
var listformat:TextFormat = new TextFormat(); 

listformat.align = TextFormatAlign.LEFT; 
listformat.size = 20.8; 
listformat.color = 0x0DAC54; 
listformat.font="Fixedsys Excelsior 3.01"; 


      //TextField 
var photolist:TextField = new TextField(); 
    photolist.x = photos_x; 
    photolist.y = tempY; 
    photolist.width = photos_wdth; 
    photolist.height = photos_hght; 
    photolist.text = photoname; 

    photolist.embedFonts = true; //<--- This freakin' guy! 

    photolist.antiAliasType = AntiAliasType.ADVANCED; 
    photolist.defaultTextFormat=listformat; 
    photolist.selectable = false; 
    photolist.wordWrap = true; 

    mediapage.photos.addChild(photolist); 

:

여기에 "screenfont는"나는 글꼴을 포함 창에 지정된 이름입니다 내 코드의 간단한 버전입니다.

그렇다면 CS5에서 구현하는 방법은 정확히 무엇입니까?

+0

swf의 라이브러리에서 선택한 글꼴을 선언 했습니까? 그렇다면 삽입 할 글리프를 선택 했습니까? – ToddBFisher

+0

예, 예. 'actionscript 내보내기'및 '프레임 1 내보내기'도 확인했습니다. – TeaCake

+0

코드에 문제가 없습니다. 다른 글꼴을 사용해 보셨습니까? –

답변

4

마지막으로 텍스트를 설정해야합니다. 따라서이 라인 photolist.text = photoname;은 그 밖의 모든 것을 따라야합니다.

var photolist:TextField = new TextField(); 
photolist.x = photos_x; 
photolist.y = tempY; 
photolist.width = photos_wdth; 
photolist.height = photos_hght; 

photolist.embedFonts = true; 
photolist.antiAliasType = AntiAliasType.ADVANCED; 
photolist.defaultTextFormat=listformat; 
photolist.selectable = false; 
photolist.wordWrap = true; 
photolist.text = photoname;//<-- set text only after applying all formatting and embedding 

mediapage.photos.addChild(photolist); 
+1

굉장! 그냥 시도해 보니 실제로 문제의 큰 부분이었습니다. 거기에는 여러 가지 요인이 나를 망쳤다. 내가 코멘트 한 사람이 photolist.size = TextFieldAutoSize.LEFT입니다. 다른 큰 문제 (다른 글꼴을 사용해 보는 것이 나에게 도움이되었다는 귀하의 제안)는 제 초기 실험 후에 제 글꼴이 TLF로 설정된 채로 남았습니다. 내가 묻고 싶다면 Classic과 TLF 설정은 무엇입니까? TLF를 사용할 수없는 이유가 있습니까? 나는 TLF를 사용할 수 없다는 것에 대해 화를 낼 수 있어야합니까? – TeaCake