【问题标题】:Flash CS5.5 specifying device fontFlash CS5.5 指定设备字体
【发布时间】:2012-10-03 16:08:39
【问题描述】:

我正在使用 Flash CS5.5 并且想要指定设备字体,而不是嵌入。

问题在于,虽然我知道设备上字体的准确名称,但我无法将字体名称输入到 Flash 创作环境中。我所拥有的只是创作机器中安装的字体的下拉列表。从选中的下拉列表中选择具有相似字体名称的“使用设备字体”会导致影片在设备上默认为 _sans。

我不希望开始使用 AS3 指定文本框和分配字体。

提前致谢。

【问题讨论】:

    标签: flash fonts device


    【解决方案1】:

    据我所知,没有任何方法可以做到这一点 - 我看到很多人都在哀叹没有这个功能!

    您能做的最好/唯一的事情是使用嵌入设置来仅嵌入您需要的字符(如果无法解决这个问题,“基本拉丁语”在 99% 的情况下都可以 - 抱歉,如果我是在这里教你吸蛋),并限制你使用的字体数量,从设计的角度来看,这可能也是一个好主意。

    关于您的最后一句话,您只需嵌入一次字体 - 每个具有该字体的文本框都可以引用它。

    抱歉,我无法提供更多帮助,但我认为您想要做的事情无法完成。

    PS 作为替代方案,您可以将字体嵌入到单独的 swf 文件中并从中动态加载它们,这样您就不必在主文件中使用不需要的字体:

    http://www.mokisystems.com/blog/flash-as3-loading-fonts/

    【讨论】:

      【解决方案2】:

      AFAIK 这只能用 AS3 完成。我知道你说过你不想使用 AS3,但这很简单。代码如下:

      要知道字体的确切名称,请使用此

      var f:Font;
      var fonts:Array = Font.enumerateFonts(true);
      for(var i:int = 0; i < fonts.length; i++) {
          f = fonts[i];
          trace(f.fontName + "," + f.fontStyle + "," + f.fontType);
      }
      

      要首先使用字体,您可以通过这种方式创建一个 TextFormat 对象

      var myFormat:TextFormat = new TextFormat();
      myFormat.font = "Helvetica"; //use your own font here
      

      然后您可以将此格式应用于任何文本字段,由 AS3 创建或在 Flash IDE 中手动创建。

      myTextfield.setTextFormat(myFormat);
      

      如果您的 TextFormat 可以全局访问,例如使用单例模式,那么您将能够在代码中的任何位置使用它。但那是另一回事了……

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-14
        • 2011-11-24
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多