Flash:动态文本字段中的抗锯齿字符,无需嵌入字体,日语

时间:2009-04-22 08:37:35

标签: flash fonts internationalization textfield antialiasing

我正在尝试在日语网站上的flash中对动态文本字段进行抗锯齿处理。这些文本字段的内容不是固定数据。

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

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

  1. 保持文件大小并使用 只有设备字体(没有 抗混叠)
  2. 强制3mb +字体下载给用户 显示平滑的抗锯齿字体。
  3. 我问过一些日本朋友,他们说“Shoganai!” (翻译:“无法帮助”)。有人有想法吗?

    ps:不幸的是,Silverlight也不是一种选择。

4 个答案:

答案 0 :(得分:4)

非常愚蠢的“解决方法”,我确信它会被投票,但由于flash.text.TextField继承了flash.display.DisplayObject,你可以使用内置的过滤器,如flash.filters.Blur来将文本水平和垂直地模糊半个像素。

这将消耗更多的CPU。

修改 在使用CS4进行一些工作之后,我找到了完美的方法,无需额外的CPU开销!结果看起来像1:1,就像'静态文本'渲染一样。我相信同样适用于CS3,因为我记得有类似的选择。

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

答案 1 :(得分:1)

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

  • 升级到Flash 10.字体无消除锯齿的问题仅限于Windows:无论如何,linux和macOs都正确地消除了别名设备字体。现在,从Flash 10开始,它也适用于Windows,但是你需要为Flash 10编译它才能工作。如果你有能力定位Flash 10,这可能是最好的方法。
  • 限制您可以使用的字符数,并仅嵌入所需的字符。这适用于任何Flash版本,但在许多情况下可能不实用。
  • 放弃并使用设备字体:如果在您的情况下无法满足上述两种方式,我认为这实际上是一个shouganai案例。

答案 2 :(得分:0)

运行时字体嵌入怎么样。

您可以在后台加载日文字体时从设备字体开始。 加载日语字体后,您拨打电话,将字体更新为加载的字体并进行嵌入。

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

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

好像可以解决。

Shoganai一路走来...... ganbatte一路走来!@

答案 3 :(得分:0)

除了LiraNuna的想法之外......

我在类似路径上看到一个article,但他们的目标也是做掩蔽......他们建议将movieclip绘制到位图。这也可能释放CPU,因为你的过滤器只会用于初始渲染,然后你可以摆脱它们。