【问题标题】:AIR Mobile: Loading custom fonts in iOS at runtimeAIR Mobile:在运行时在 iOS 中加载自定义字体
【发布时间】:2026-02-24 06:45:01
【问题描述】:

我们的应用程序会下载并呈现外部的自定义内容,其中包括自定义的专有字体。对于 Web、桌面和 Android,我们只需使用嵌入了字体的外部 SWF 文件。为什么这种方法不适用于 iOS 是有技术意义的,但我找不到任何替代方法。这根本不可能吗?我希望不是这样,因为这意味着我们的应用程序无法在 iOS 上使用 AIR 移动技术。

埃里克

编辑详情:

让我更详细地介绍一下这个过程。在服务器上上传 PDF。然后,我们从 PDF 中解析和提取内容,包括每页的字体。这些字体通常是内容所有者完全自定义和专有的,因为它们存储数学符号和其他非标准字符。当我们提取这些字体时,我们将字体分配给一个唯一标识符,将其嵌入,并将其编译为 SWF。当客户端请求该内容时,我们有一个字体列表。我们下载所有包含这些字体的 SWF 文件,然后加载并注册这些字体。这是我们正在下拉的 SWF 示例。这是被拉下的已编译 SWF 的全部内容。

package {
    import flash.display.Sprite;
    import flash.text.Font;
    import flash.system.Security;

    public class F9471cf2d10924f87820ae61a30dd4b8f extends Sprite
    {

      [Embed(source='TempF9471cf2d10924f87820ae61a30dd4b8f.swf',symbol='F9471cf2d10924f87820ae61a30dd4b8f')]
      public static var F9471cf2d10924f87820ae61a30dd4b8f:Class;



      public function F9471cf2d10924f87820ae61a30dd4b8f()
      {
          Security.allowDomain("*");
          Security.allowInsecureDomain("*");

          Font.registerFont(F9471cf2d10924f87820ae61a30dd4b8f);
      }
    }
}

我们没有将这些字体的集合预先存储在任何库中。这都是动态生成的内容,因此我们需要能够按需下载和注册字体,而无需事先了解字体。

【问题讨论】:

    标签: ios fonts air


    【解决方案1】:

    如果我理解正确,您希望在运行时处理自定义字体。看看这个:https://github.com/zynga/FontLabel

    【讨论】:

    • 有点。我在原始帖子中添加了更多细节。这里的主要问题是事先不知道字体。需要能够从远程服务器下载和注册字体。