4

我正在尝试在日本网站的 Flash 中实现动态文本字段的抗锯齿。这些文本字段的内容不是固定数据。

我没有嵌入字体的选项,因为嵌入所有字符会导致一个非常重的 swf 文件(3000kb+ 仅用于字体)。这是因为日语中有大量独特的字符(字面意思是数千个)。

基本上,任何使用动态文本字段的 Flash 站点都面临相同的选择:

  1. 保持文件大小并仅使用设备字体(不使用抗锯齿)
  2. 强制向用户下载 3mb+ 字体以显示平滑的抗锯齿字体。

我问过一些日本朋友,他们说“Shoganai!” (翻译:“没办法”)。有人有想法吗?

ps:不幸的是,silverlight 也不是一个选项。

4

4 回答 4

4

真正愚蠢的“解决方法”,我敢肯定它会被否决,但由于 flash.text.TextField 继承了 flash.display.DisplayObject,您可以使用内置过滤器(如 flash.filters.Blur)来模糊文本水平和垂直半个像素。

这将消耗更多的CPU。

编辑: 在使用 CS4 工作一点之后,我找到了一种完美的方法来做到这一点,而无需额外的 CPU 开销!结果看起来 1:1 与“静态文本”渲染完全一样。我相信在 CS3 下同样适用,因为我记得有一个类似的选项。

选择文本后,在属性下选择“Anti-alias”并选择“Custom Anti-alias”。将厚度设置为 100,将锐度设置为 0。这对我有用!

于 2009-04-22T08:45:32.153 回答
1

有许多可行的事情,但没有一个可能是你喜欢的。

  • 升级到 Flash 10。字体没有抗锯齿的问题仅限于 windows:linux 和 macOS 都正确地抗锯齿设备字体。现在,从 Flash 10 开始,它也可以在 Windows 上运行,但您需要针对 Flash 10 进行编译才能使其工作。如果您有能力以 Flash 10 为目标,这可能是最好的方法。
  • 限制您可以使用的字符数,并仅嵌入所需的字符。这适用于任何 Flash 版本,但在许多情况下可能不实用。
  • 放弃并使用设备字体:如果在您的情况下以上两种方式都不可行,我认为这确实是一个shouganai案例。
于 2009-12-10T05:58:35.527 回答
0

运行时字体嵌入怎么样。

您可以从设备字体开始,同时在后台加载日文字体。加载日文字体后,您将调用将字体更新为加载的字体并进行嵌入。

查看 GAIA 框架,以便在内置时轻松嵌入运行时字体。

对于更新部分,我编写了一个记录字体及其文本格式的数组。然后,当加载字体时,它会引用循环并更新所有注册到它的文本字段的数组。

似乎行得通。

Shoganai是一个kop out......一路ganbatte!@

于 2009-05-29T04:48:35.567 回答
0

在 LiraNuna 的想法之上....

我在类似的路径上看到了一篇文章,但他们也打算进行蒙版……他们建议将影片剪辑绘制为位图。这也可能会释放 CPU,因为您的过滤器仅用于初始渲染,然后您可以摆脱它们。

于 2009-05-29T05:47:20.317 回答