|
|
글꼴을 사용한 작업
FontDescription 객체는 ElementFormat과 함께 사용되어 글꼴을 식별하고 일부 특성을 정의합니다. 이러한 특성에는 글꼴 이름, 두께, 모양, 렌더링 및 글꼴을 찾는 방법(장치 및 포함)이 포함됩니다.
참고: FTE는 Type 1 글꼴이나 Type 3, ATC, sfnt-wrapped CID 또는 Naked CID와 같은 비트맵 글꼴을 지원하지 않습니다.
글꼴 특성 정의(FontDescription 객체)FontDescription 객체의 fontName 속성은 단일 이름이거나 쉼표로 구분된 이름 목록일 수 있습니다. 예를 들어 "Arial, Helvetica, _sans"와 같은 목록에서 Flash Player 또는 AIR은 먼저 "Arial"을 찾은 다음 "Helvetica"를 찾고, 처음 두 개의 글꼴을 찾을 수 없는 경우 마지막으로 "_sans"를 찾습니다. 글꼴 이름 세트에는 "_sans", "_serif" 및 "_typewriter"의 세 가지 일반 장치 글꼴 이름이 포함됩니다. 이러한 이름은 재생 시스템에 따라 특정 장치의 글꼴로 매핑됩니다. 장치 글꼴을 사용하는 모든 글꼴 설명에 이러한 기본 이름을 지정하는 것이 좋습니다. fontName을 지정하지 않으면 "_serif"가 기본값으로 사용됩니다.
fontPosture 속성은 기본값(FontPosture.NORMAL) 또는 기울임체(FontPosture.ITALIC)로 설정할 수 있습니다. fontWeight 속성은 기본값(FontWeight.NORMAL) 또는 굵게(FontWeight.BOLD)로 설정할 수 있습니다.
var fd1:FontDescription = new FontDescription();
fd1.fontName = "Arial, Helvetica, _sans";
fd1.fontPosture = FontPosture.NORMAL;
fd1.fontWeight = FontWeight.BOLD;
포함된 글꼴 및 장치 글꼴FontDescription 객체의 fontLookup 속성은 Flash Player 및 AIR에서 텍스트를 렌더링하기 위해 장치 글꼴을 찾을지 포함된 글꼴을 찾을지를 지정합니다. 장치 글꼴(FontLookup.DEVICE)을 지정하면 런타임에는 재생 시스템에서 글꼴을 찾게 됩니다. 포함된 글꼴(FontLookup.EMBEDDED_CFF)을 지정하면 런타임에는 SWF 파일에 지정된 이름을 갖는 포함된 글꼴을 찾게 됩니다. 포함된 CFF(Compact Font Format) 글꼴만 이 설정에서 작동합니다. 지정한 글꼴이 없으면 폴백 장치 글꼴이 사용됩니다.
장치 글꼴을 사용하면 SW 파일의 크기가 작아집니다. 포함된 글꼴을 사용하면 여러 플랫폼에서 품질을 높게 유지할 수 있습니다.
var fd1:FontDescription = new FontDescription();
fd1.fontLookup = FontLookup.EMBEDDED_CFF;
fd1.fontName = "Garamond, _serif";
렌더링 모드 및 힌팅CFF(Compact Font Format) 렌더링은 Flash Player 10 및 Adobe AIR 1.5부터 사용할 수 있습니다. 이 유형의 글꼴 렌더링을 사용하면 텍스트를 보다 쉽게 읽을 수 있으며 작은 크기에서 글꼴의 표시 품질이 향상됩니다. 이 설정은 포함된 글꼴에만 적용됩니다. renderingMode 속성에 대한 FontDescription의 기본값은 이 설정(RenderingMode.CFF)으로 지정됩니다. 이 속성을 RenderingMode.NORMAL로 설정하여 Flash Player 7 이전 버전에서 사용된 렌더링 유형과 일치시킬 수 있습니다.
CFF 렌더링을 선택한 경우 두 번째 속성인 cffHinting은 글꼴의 가로 스템이 하위 픽셀 격자에 맞게 조정되는 방법을 제어합니다. 기본값인 CFFHinting.HORIZONTAL_STEM은 CFF 힌팅을 사용합니다. 이 속성을 CFFHinting.NONE으로 설정하면 힌팅이 제거됩니다. 이 설정은 애니메이션이나 큰 글꼴 크기에 적합합니다.
var fd1:FontDescription = new FontDescription();
fd1.renderingMode = RenderingMode.CFF;
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;
FontDescription 잠금 및 복제FontDescription 객체를 ElementFormat에 할당하면 해당 locked 속성이 자동으로 true로 설정됩니다. 잠긴 FontDescription 객체를 수정하려고 하면 IllegalOperationError가 발생합니다. ElementFormat에 할당하기 전에 이러한 객체를 완전히 정의하는 것이 좋습니다.
기존 FontDescription을 수정하려면 먼저 해당 locked 속성을 확인합니다. true이면 clone() 메서드를 사용하여 객체의 잠기지 않은 복사본을 만듭니다. 이 잠기지 않은 객체의 속성은 변경할 수 있으며, 그런 다음 ElementFormat에 할당할 수 있습니다. 이 TextElement에서 만든 모든 새 행은 새 서식을 갖습니다. 동일한 객체에서 만든 이전 행은 변경되지 않습니다.
package
{
import flash.display.Sprite;
import flash.text.*;
public class FontDescriptionCloneExample extends Sprite
{
private var tb:TextBlock = new TextBlock();
private var te:TextElement;
private var ef1:ElementFormat;
private var ef2:ElementFormat;
private var fd1:FontDescription = new FontDescription();
private var fd2:FontDescription;
public function FontDescriptionCloneExample()
{
fd1.fontName = "Garamond";
ef1 = new ElementFormat(fd);
var str:String = "This is flash text";
te = new TextElement(str, ef);
tb.content = te;
var tx1:TextLine = tb.createTextLine(null,600);
addChild(tx1);
fd2 = (fd1.locked) ? fd1.clone() : fd1;
fd2.fontName = "Arial";
ef2 = (ef1.locked) ? ef1.clone() : ef1;
ef2.fontDescription = fd2;
tb.content.elementFormat = ef2;
var tx2:TextLine = tb.createTextLine(null,600);
addChild(tx2);
}
}
}
|