关于设置消除锯齿文本的格式

Flash 8 引入了两个新的属性,可在启用高级消除锯齿时设置文本字段的格式:sharpnessthickness。清晰度是指应用于文本字段实例的锯齿量。清晰度值较高可使嵌入字体边缘锯齿更显示并且更清晰。将清晰度设置为较低的值可使字体看起来更为柔滑,更为模糊。对于文本字段而言,设置字体粗细与启用粗体格式类似。粗细值越高,则字体粗体效果越明显。

下面的示例动态加载文本文件并在舞台上显示文本。沿 x 轴移动鼠标指针可将清晰度设置在 -400 和 400 之间。沿 y 轴移动鼠标指针可将粗细设置在 -200 和 200 之间。

修改文本字段的清晰度和粗细:

  1. 创建一个新的 Flash 文档,并将其另存为 sharpness.fla
  2. 从"库"面板右上角的弹出菜单中选择"新建字型"。
  3. 从"字体"下拉菜单中选择"Arial"并将字体大小设置为 24 磅。
  4. 在"名称"文本框中输入字体名称 Arial-24 (embedded),然后单击"确定"。
  5. 右击库中的字体元件,然后选择"链接"打开"链接属性"对话框。
  6. 将链接标识符设置为 Arial-24,选中"为 ActionScript 导出"和"在第一帧导出"复选框,然后单击"确定"。
  7. 将下面的代码添加到主时间轴中的第 1 帧:
    var my_fmt:TextFormat = new TextFormat();
    my_fmt.size = 24;
    my_fmt.font = "Arial-24";
    
    this.createTextField("lorem_txt", 10, 0, 20, Stage.width, (Stage.height - 20));
    lorem_txt.setNewTextFormat(my_fmt);
    lorem_txt.text = "loading...";
    lorem_txt.wordWrap = true;
    lorem_txt.autoSize = "left";
    lorem_txt.embedFonts = true;
    lorem_txt.antiAliasType = "advanced";
    
    this.createTextField("debug_txt", 100, 0, 0, Stage.width, 20);
    debug_txt.autoSize = "left";
    debug_txt.background = 0xFFFFFF;
    
    var lorem_lv:LoadVars = new LoadVars();
    lorem_lv.onData = function(src:String) {
        lorem_txt.text = src;
    }
    lorem_lv.load("http://www.helpexamples.com/flash/lorem.txt");
    
    var mouseListener:Object = new Object();
    mouseListener.onMouseMove = function():Void {
        lorem_txt.sharpness = (_xmouse * (800 / Stage.width)) - 400;
        lorem_txt.thickness = (_ymouse * (400 / Stage.height)) - 200;
        debug_txt.text = "sharpness=" + Math.round(lorem_txt.sharpness) + 
            ", thickness=" + Math.round(lorem_txt.thickness);
    };
    Mouse.addListener(mouseListener);
    

    此 ActionScript 代码可分为五个关键部分。第一部分代码定义一个新的 TextFormat 实例,该实例将应用于动态创建的文本字段。下面两部分代码在舞台上创建两个新文本字段。第一个文本字段 lorem_txt 应用前面创建的自定义文本格式设置对象,启用嵌入字体,并将 antiAliasType 属性设置为 true。第二个文本字段 debug_txt 显示 lorem_txt 文本字段的当前清晰度和粗细值。第四部分代码创建一个 LoadVars 对象,该对象负责加载外部文本文件并填充 lorem_txt 文本字段。最后一部分代码,即第五部分代码定义在舞台上移动鼠标指针时调用的鼠标侦听器。根据鼠标指针在舞台上的当前位置计算 sharpnessthickness 的当前值。sharpnessthickness 属性是为 lorem_txt 文本字段设置的,其当前值显示在 debug_txt 文本字段中。

  8. 选择"控制">"测试影片"来测试该文档。

    沿 x 轴移动鼠标指针以更改文本字段的清晰度。从左到右移动鼠标指针以增加清晰度并使锯齿效果更明显。沿 y 轴移动鼠标指针以更改文本字段的粗细。

有关在 SWF 文件中使用消除锯齿文本的更多信息,请参见使用 ActionScript 设置消除锯齿Flash 中的字体呈现选项使用网格固定类型

硬盘上的一个范例文件演示了如何在应用程序中应用和操作消除锯齿文本。使用 FlashType 呈现技术可创建清晰易读的小字号文本。此范例还演示了在使用 cacheAsBitmap 属性时如何快速平滑地滚动文本字段。

该范例源文件 flashtype.fla 位于硬盘上的 Samples 文件夹中。

在 Windows 中,浏览到 boot drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\FlashType。

在 Macintosh 上,浏览到 Macintosh HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/ActionScript/FlashType。