2012-01-12 2 views
1

임베디드 글꼴을 사용하여 런타임에 동적으로 비트 맵 글꼴을 생성하는 클래스를 만들었습니다. 지금까지 문자 간격에 사소한 문제가 있다는 점만 제외하면 잘 작동합니다.AS3에서 정확한 문자/글꼴 메트릭을 얻을 수 있습니까?

아래의 이미지에서 첫 번째 줄은 실제 TextField이고 두 번째 줄은 생성 된 비트 맵 글꼴을 사용하여 으로 렌더링되었습니다.

Character spacing problem example

당신이 단어를 '여우'또는 단어의 '에드'를 보면 '뛰어'당신은 문자 간격이 조금 이상한 보이는 것을 알 수 있습니다.

TextLineMetrics 클래스의 대안으로 더 정확한 문자 메트릭을 얻을 수 있습니까?

업데이트 : 결국 해결책을 발견 우연히

: 2

Text rendering quality using the new Flash Text Engine

UPDATE :

텍스트 렌더링 품질은 새로운 플래시 텍스트 엔진을 사용하여

첫 번째 문제는 으로 설정된 antiAliasType 속성이었습니다.
더 높은 품질의 텍스트가 생성되지만 TextLineMetrics은 문자의 잘못된 너비를 반환합니다.

두 번째는 가장 가까운 픽셀까지 반올림해야합니다 (Math.ceil 사용).

+0

아마도 반올림 문제 일뿐입니다. 픽셀 값을 반올림하려고 했습니까? (또는 이미 반올림 한 경우 반올림하지 않았습니까?) –

+0

예, 전체 픽셀의 위치를 ​​반올림했는데 이제는 반올림하지 않았지만 차이가 없었으며 문자가 흐리게 표시되었습니다. . – cmann

답변

0

TextField가 너무 무겁습니다. flash.text.engine은 비트 맵 생성에 더 잘 작동합니다.

+0

고마워, 내가 살펴볼거야. – cmann

+0

그것은 지금까지 좋아 보인다; monospaced 글꼴을 사용하고 있지만 FTE와'TextLine.textWidth' 또는'TextLine.getAtomBounds'를 사용하더라도'TextlineMetrics.width'를 사용하면 일관되지 않은 너비가 반환됩니다. 모든 문자에 대해 동일한 너비가 올바르게 반환됩니다. 내가 찾은 유일한 문제는 내 의견으로는 임베디드 FTE 텍스트의 품질이 좋지 않다는 점입니다. 문제를 설명하기 위해 다른 이미지를 포함 시켰습니다. 결론은 다른 방법과 비교하여 흐릿하게 보입니다. FTE를 사용하여 앤티 앨리어싱 품질을 제어 할 수있는 방법이 있습니까? – cmann

관련 문제