在html中段落标记符,FLEX:HTMLText段落标记添加额外的换行符

这绝对是一个错误,它是通过设置“htmlText”属性而不是“text”属性来触发的。无论您是在代码中分配它,还是让设计者通过选中文本字段属性中的“render as html”按钮来设置“htmlText”而不是“text”,都会发生这种情况。另外值得注意的是,这只发生在“输入”类型的TextFields上。如果你从一个“动态”类型的文本字段开始,然后将“type”设置为“input”(也必须将“selectable”设置为true或者光标将是不可见的(另一个bug)),你会看到额外的行显示为right在你眼前。同样,这不会影响动态文本字段,只会影响输入模式字段。

尽管htmlText属性在两种情况下都是相同的,无论是为文本还是htmlText分配像“Hello”这样的字符串(生成的htmlText值都相同),只有在设置htmlText属性时才会出现额外的行。

具体来说,当您将htmlText设置为实际包含html段落标记的字符串时,会发生这种情况。如果您只是为htmlText分配一些文本,如“Hello”,则不会出现问题。另一方面,如果您分配了htmlText

Hello

或者您为自己分配了htmlText(您需要这样做以保留html并强制内部指标立即更新),则会出现问题。有人提到,如果省略关闭标记,问题将不会发生,这是真的。同样地,分配像 Hello这样的东西也不会触发问题。

总而言之,只有在设置自动调整大小,多行的htmlText属性时才会出现此问题,< em>输入类型文本字段为包含

标签的人身上。

要重现此问题,请在设计器中设置文本字段,并确保打开背景和轮廓以便您可以看到字段的大小,然后它将是单行高(多行文本字段)预期(假设它足够宽)。然后,如果您转到代码并设置txtfld.htmlText = txtfld.htmlText(将其设置为自身),则仅仅分配htmlText属性(对于它自己的相同值)会导致添加额外的行。并且htmlText的值实际上是相同的,它实际上并没有隐藏在额外的

标签或任何东西......它只是显示不应该存在的这个尾随返回。正如预期的那样,当你在文本字段的Flash属性中选中“render as html”时会出现同样的情况,这似乎会导致它设置htmlText而不是文本,并导致问题出现。

实际上不太可能存在两种渲染模式,因为它在技术上总是渲染htmlText(即htmlText总是有一个值,你总是可以使用setTextFormat设置文本某段的文本格式,最初分配了“文本“,并且不会触发某种切换到”html渲染模式“或类似的东西。

这种行为似乎严格来自于分配htmlText属性。

避免它的唯一方法(除了设置htmlText,读回值,剥离最后一个

标记并重新分配它),只需将所有文本字段初始化为纯文本字段,然后通过调用setTextFormat(TextFormat,beginIndex,endIndex)手动应用格式。

正如在原始问题帖子中提到的,这个错误的真正的灾难是你无法保存和恢复TextField的htmlText值,因为将htmlText设置为包含html的字符串(特别是p标签)会导致这个额外的要添加的行,如果你特别希望文本字段的大小合适,那么你可能已经开启了自动调整大小,特别是当这个问题悄悄上升并确保大小不正确时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值