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

Flash 引入了两个属性(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 中的字体呈现选项使用网格固定类型

有关说明如何在应用程序中应用和操作消除锯齿文本的范例源文件 aliasing.fla,请参阅“Flash 范例”页,网址为 www.adobe.com/go/learn_fl_samples_cn。下载并解压缩 Samples zip 文件,然后定位到 ActionScript 2.0/Advanced Anti-Aliasing 文件夹以访问该范例。使用高级消除锯齿技术可创建清晰易读的小字号文本。此范例还演示了在使用 cacheAsBitmap 属性时如何快速平滑地滚动文本字段。


Flash CS3

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000903.html