【问题标题】:AS3 > Use different text styles (bold and regular) in the same dynamic text fieldAS3 > 在同一个动态文本字段中使用不同的文本样式(粗体和常规)
【发布时间】:2012-09-06 00:22:19
【问题描述】:

我已经使用 as3 很多年了,但每次我需要操纵字体时我都会发疯:(

我的设置: 我正在通过代码填充一个带有很多动态文本字段的movieClip。它们的值来自外部 XML。

我的问题: 我的客户想要在 xml 中插入 html 标签,以便在其中包含粗体文本。例如,他们想要:“这个字符串带有 this part bold”。 Xml 部分没问题,用 CDATA 等格式化。如果我跟踪来自 xml 的值是 html,但它在文本字段中显示为常规文本....

文本字段使用客户端自定义字体(不是系统字体),并通过图形设计师在 Flash 中嵌入对话框面板嵌入字体。

有什么帮助吗?


这是填充文本字段的代码部分(在 for 循环内)

  var labelToWrite:String = labelsData.label.(@id == nameOfChildren)[VarHolder.activeLang];
    if (labelToWrite != "") {
        foundTextField.htmlText = labelToWrite; 
        // trace ("labelToWrite is -->" +labelToWrite);
    }

跟踪输出我

 This should be <b>bold text with b tag</b> and this should be <strong>strong text </strong>.

【问题讨论】:

  • 可能是一个愚蠢的问题,但你是在设置textField.htmlText = 而不是textField.text =
  • 您应该发布您的相关代码,以及至少您的 xml 的 sn-p
  • 字体可能有问题。当您嵌入字体时,它并不总是有粗体选项。 html 文本最适合系统字体。尝试将其更改为像 serif 这样的系统字体,看看是否可以正常工作。不能解决您的问题,但会缩小原因

标签: actionscript-3 flash fonts textfield


【解决方案1】:

您的代码看起来不错。所以问题将出在嵌入式字体上。当您在 Flash 中嵌入字体时,它不会嵌入任何单独的粗体版本,因此您可能需要嵌入字体的粗体版本。

一些资源: Flash CS4 <b> tag in with htmlText

我发现使用样式表来声明字体而不是文本格式时,html 文本效果最好。

           var style:StyleSheet = new StyleSheet();
               style.setStyle(".mainFont", { fontFamily: "Verdana", fontSize: 50, color: "#ff0000"            } );
           var foundTextField:TextField = new TextField();
           foundTextField.embedFonts = true;
           foundTextField.autoSize = TextFieldAutoSize.LEFT;
           foundTextField.antiAliasType = AntiAliasType.ADVANCED;
           foundTextField.styleSheet = style;
           foundTextField.htmlText = "<div class=\"mainFont\">" + labelToWrite + "</div>";

见:flash as3 xml cdata bold tags rendered in htmlText with an embedded font

其他原因可能: 您是否嵌入了正确的字体类型(TLF 与 CFF)? 如果不使用 flash IDE 来制作你的 textField,你是在注册字体吗?

Font.registerFont(MyFontClass);

【讨论】:

  • 谢谢,但是文本字段是由设计所有东西的平面设计师创建的,我检查并在使用常规时嵌入了常规,在使用粗体时嵌入了粗体(在同一个文件中)
  • 但是您是否尝试过不使用嵌入字体来查看是否可以解决问题?
  • 抱歉,我急于提供测试版,所以我跳过了这个功能。我将尝试使用系统字体,我会告诉你的。谢谢
  • 我并不是要建议将其更改为系统字体是解决方案,只是确认嵌入的字体是问题。
  • 您尝试过我的其他建议吗?样式表,注册字体?
猜你喜欢
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多