2012-02-21 1 views
0

오늘 아침 나는 사이트 전체에서 발견 된 여러 가지 해결책을 시도하면서 시간을 보냈지 만, 불행히도 그 중 누구도 진정으로 일하지 않았습니다. 여기에 문제가 있습니다. 내 컴퓨터에서 글꼴을 의도적으로 제거하고 플래시 플레이어에 글꼴이 표시되는 것을 보았 기 때문에 글꼴 임베딩 프로세스가 제대로 작동한다고 생각합니다. 그러나, 그들은 우리의 Windows 시험기 (IE 또는 FF 중 하나)에 나타나지 않으며 이유를 파악할 수 없습니다. 앞에서 언급했듯이 사이트 전체에서 발견 된 몇 가지 솔루션을 시도했지만 차이는 없었습니다. 여기에 내가 구축하는 클래스와 생성자의 excepts입니다 : 사람이 솔루션을 제공하거나 올바른 방향으로 날 지점 수 있다면AS3 및 IE에 포함 된 글꼴 : 구문이 올바른가요?

public class MyClass { 
    [Embed(source = "../../fonts/DroidSans.ttf", 
     fontName = "DroidSans", 
     mimeType = "application/x-font-truetype", 
     fontWeight = "normal", 
     fontStyle = "normal", 
     unicodeRange = "U+0041-U+005A, U+0061-U+007A, U+0030-U+0039, U+002E-U+002E", 
     embedAsCFF = "false")] 
    private var droidSansFont:Class; 

    [Embed(source = "../../fonts/DroidSans-Bold.ttf", 
     fontName = "DroidSansBold", 
     mimeType = "application/x-font-truetype", 
     fontWeight = "normal", 
     fontStyle = "normal", 
     unicodeRange = "U+0041-U+005A, U+0061-U+007A, U+0030-U+0039, U+002E-U+002E", 
     embedAsCFF = "false")] 
    private var droidSansBoldFont:Class; 
    . 
    . 
    . 
    public function MyClass() { 
     _flVersion = String(flash.system.Capabilities.version); 
     _baseFont = (_flVersion.indexOf("10,") != -1) ? "Arial" : "DroidSans"; 
     _boldFont = (_flVersion.indexOf("10,") != -1) ? "Arial" : "DroidSansBold"; 

     buttonFormat = new TextFormat(); 
     buttonFormat.font = _baseFont; 
     buttonFormat.size = 10; 
     buttonFormat.color = 0x000000; 
     buttonFormat.bold = false; 
     buttonFormat.align = "center"; 
     . 
     . 
     . 
    } 
} 

, 그것은 가장 도움이 될 것입니다.

+0

빠른 업데이트입니다. 테스트중인 브라우저에서 글꼴 삽입 기능이 작동하지 않는 것 같습니다 (즉 코드가 완전히 실패했습니다). –

+0

TextField에 embedFonts = true를 설정 했습니까? 그리고 버전 10 테스트는 무엇입니까? 플래시 플레이어 10에 포함 된 글꼴 만 사용하고 있습니까? (하지만이 테스트에주의하십시오. 버전 12,10,115에서 일치 할 수 있습니다.) –

+0

Darn, embedFont = true로 설정하지 않았습니다. 나는 그것이 틀린 것으로 잘못 가정했다. 그것을 시도하게하십시오. –

답변

0

TextField에 embedFonts = true를 설정 했습니까?

그리고 버전 테스트에주의 :

_flVersion.indexOf("10,")!=-1 

이 버전 문자열 어디서나 일치 할 수있다. 당신은 논리가 조금 혼란 스럽지만 신중하게 생각하면 플래시 플레이어 버전에서 임베드 된 글꼴을 사용할 수 없음을 확인합니다 (예 : 10,1,100 및 12,10,115)

FP10에서 포함 된 글꼴을 비활성화하려는 경우, 코드를 더 쉽게 읽을 수 있도록

_flVersion.indexOf("10,")==0 

난 후 주석 getter 함수에 넣고 것 : 가능 (12,10,115 일치하지 않습니다) 다음에 조건을 변경할 수

// No embedded fonts for flash player 10 
private static var _flVersion:String = String(flash.system.Capabilities.version); 
private function get use_embedded_fonts():Boolean { 
    return _flVersion.indexOf("10,")!=0; 
} 

또한 u를 사용할 때만 embed 플래그를 설정하려고합니다. 임베디드 Droid 폰트가 아니라 Arial을 부릅니다.

_baseFont = (!use_embedded_fonts) ? "Arial" : "DroidSans"; 
_boldFont = (!use_embedded_fonts) ? "Arial" : "DroidSansBold"; 
_embed_flag = use_embedded_fonts; 

textfield.embedFonts = _embed_flag; 
... 
+0

제안 해 주셔서 감사합니다. @ 제프 - 당신이 제안한 변경뿐만 아니라 embedFonts = 사실 추가. 필자가 추가 한 텍스트는 api 문서에 따르면 내가 포함하고 있다고 생각하는 글꼴이 실제로 포함되지 않았 음을 의미합니다 (실제로 SWF를 컴파일 할 때 크기 차이를 볼 때). 또는 올바른 이름을 지정하지 않습니다. 그것이 당신의 평가일까요? 또한 위의 클래스는 메서드를 통해 다른 클래스에 드롭 아웃되도록 모든 TextFormat 객체를 만듭니다. 나는이 모든 것을 하나의 수업에서 시도했으나 동일한 결과를 가져왔다. –

+0

업데이트 : 그래서 buttonFormat.font = _baseFont를 대체하면 알아 챘습니다. buttonFormat.font = "DroidSans"로 작동합니다. 문제가 초기화인지 궁금합니다. 지금 테스트 중 ... –

+0

흥미 롭습니다 - 지금 우리는 호기심이 많습니다. =) –