使用 ActionScript 设置消除锯齿

Flash 8 提供两种消除锯齿类型:正常和高级。高级消除锯齿仅适用于 Flash Player 8 和更高版本,并且只有将字体嵌入到库中且将字段的 embedFonts 属性设置为 true 时才可用。对于 Flash Player 8,使用 ActionScript 创建的文本字段的默认设置为正常

若要设置 TextField.antiAliasType 属性的值,请使用以下字符串值:

正常 应用常规文本消除锯齿。这与 Flash Player 在第 7 版和更低版本中使用的消除锯齿类型匹配。

高级 应用高级消除锯齿以提高文本可读性,该类型适用于 Flash Player 8。通过高级消除锯齿,能够以很小的尺寸、很高的品质呈现字型。它最适合在具有大量小字号文本的应用程序中使用。

提示

Macromedia 不建议对大于 48 磅的字体使用高级消除锯齿。

若要使用 ActionScript 设置消除锯齿文本,请参见下面的示例。

使用高级消除锯齿:

  1. 创建一个新的 Flash 文档,并将其另存为 antialiastype.fla
  2. 在舞台上创建两个影片剪辑,其实例名称为 normal_mcadvanced_mc

    您将使用这些影片剪辑在两种消除锯齿类型之间进行切换:正常和高级。

  3. 打开"库"面板并从"库"面板右上角的弹出菜单中选择"新建字型"。

    随即打开"字体元件属性"对话框,在该对话框中可选择要嵌入到 SWF 文件中的字体(包括字体样式和字体大小)。还可以指定在文档库和属性检查器中的字体下拉菜单中显示的字体名称(如果您在舞台上选择了一个文本字段)。

    1. 从"字体"下拉菜单中选择"Arial"字体。
    2. 请确保未选中"Bold"和"Italic"选项。
    3. 将大小设置为 10 像素。
    4. 输入字体名称 Arial-10 (embedded)
    5. 单击"确定"。
  4. 在库中,右击字体元件,然后从上下文菜单中选择"链接"。

    即可出现"链接属性"对话框。

  5. 选中"为 ActionScript 导出"和"在第一帧导出"选项,输入链接标识符 Arial-10,然后单击"确定"。
  6. 将下面的 ActionScript 添加到主时间轴中的第 1 帧:
    var text_fmt:TextFormat = new TextFormat();
    text_fmt.font = "Arial-10";
    text_fmt.size = 10;
    
    this.createTextField("my_txt", 10, 20, 20, 320, 240);
    my_txt.autoSize = "left";
    my_txt.embedFonts = true;
    my_txt.selectable = false;
    my_txt.setNewTextFormat(text_fmt);
    my_txt.multiline = true;
    my_txt.wordWrap = true;
    
    var lorem_lv:LoadVars = new LoadVars();
    lorem_lv.onData = function(src:String) {
        if (src != undefined) {
            my_txt.text = src;
        } else {
            my_txt.text = "unable to load text file.";
        }
    };
    lorem_lv.load("http://www.helpexamples.com/flash/lorem.txt");
    
    normal_mc.onRelease = function() {
        my_txt.antiAliasType = "normal";
    };
    advanced_mc.onRelease = function() {
        my_txt.antiAliasType = "advanced";
    };
    

    前面的代码分为四个关键区域。第一个代码块创建一个新的 TextFormat 对象,该对象指定用于即将创建的文本字段的字体和字体大小。指定的字体 Arial-10 是在上一步骤中嵌入的字体元件的链接标识符。

    第二个代码块创建一个新的文本字段,其实例名称为 my_txt。为了正确嵌入字体,必须将该文本字段实例的 embedFonts 设置为 true 。此代码还将新文本字段的文本格式设置为前面创建的 TextFormat 对象。

    第三个代码块定义一个 LoadVars 实例,该实例使用外部文本文件的内容对舞台上的文本字段进行填充。文档完全加载完毕之后(但未分析),整个文件内容将复制到 my_txt.text 属性,以便在舞台上显示。

    最后一个代码块,即第四个代码块为 normal_mc 影片剪辑和 advanced_mc 影片剪辑定义 onRelease 事件处理函数。用户单击和释放这些选项之一时,舞台上的文本字段的消除锯齿类型也将改变。

  7. 保存对 FLA 文件所做的更改。
  8. 选择"控制">"测试影片"对 Flash 文档进行测试。
  9. 单击舞台上的 advanced_mc 影片剪辑。

    单击影片剪辑可将消除锯齿类型从正常(默认)切换到高级。处理具有较小字体大小的文本字段时,将消除锯齿设置为高级可大大提高文本可读性。

提示

使用高级消除锯齿时,即使字号很小,也能达到极高的呈现品质。它最适合具有大量小字号文本的应用程序。Macromedia 不建议对大于 48 磅的字体使用高级消除锯齿。

有关对消除锯齿文本进行格式设置的信息,请参见使用网格固定类型关于设置消除锯齿文本的格式

硬盘上的一个范例文件演示了如何在应用程序中应用和操作消除锯齿文本。使用 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。