Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 FLEX:HTMLText段落标记添加额外的换行符_Actionscript 3_Apache Flex_Adobe - Fatal编程技术网

Actionscript 3 FLEX:HTMLText段落标记添加额外的换行符

Actionscript 3 FLEX:HTMLText段落标记添加额外的换行符,actionscript-3,apache-flex,adobe,Actionscript 3,Apache Flex,Adobe,好吧,我有个问题有点奇怪。我正在使用RichTextEditor,并允许用户重新调整其大小。所有控件都被剥离到主工具栏上,这样RichTextEditor看起来就像一个包含文本的框。我有一个问题,当我保存编辑器生成的htmltext,然后稍后重新渲染它时,它总是在文本末尾添加一个额外的换行符。我发现这是由于段落标记,因为我希望用户能够对齐文本,所以我必须保留它。有人知道如何在不剥离所有格式的情况下剥离最后一个换行符吗 我对flex-html文本组件也有类似的头痛。Flex对许多html案例没有适

好吧,我有个问题有点奇怪。我正在使用RichTextEditor,并允许用户重新调整其大小。所有控件都被剥离到主工具栏上,这样RichTextEditor看起来就像一个包含文本的框。我有一个问题,当我保存编辑器生成的htmltext,然后稍后重新渲染它时,它总是在文本末尾添加一个额外的换行符。我发现这是由于段落标记,因为我希望用户能够对齐文本,所以我必须保留它。有人知道如何在不剥离所有格式的情况下剥离最后一个换行符吗

我对flex-html文本组件也有类似的头痛。Flex对许多html案例没有适当的支持。您将一直看到
  • 的额外填充。见鬼,甚至不支持
    标记。如果普通文本中有换行符,flex会在标记的末尾附加额外的填充,删除此换行符将删除额外的填充


    但是,您可能需要这样做:

    我对此进行了修复,基本上包括剥离最后一个结束段落标记

    。RichTextEditor很难看:(

    这绝对是一个bug,它是通过设置“htmlText”属性而不是“text”属性触发的。无论您是在代码中分配它,还是通过选中“呈现为html”使设计器设置“htmlText”而不是“text”,都会发生这种情况文本字段属性中的按钮。同样值得注意的是,这只发生在“输入”类型的文本字段上。如果您从“动态”类型的文本字段开始,然后将“类型”设置为“输入”(还必须将“可选”设置为真,否则光标将不可见(另一个错误)),您将看到额外的一行出现在眼前。同样,这不会影响动态文本字段,只会影响输入模式下的文本字段

    尽管htmlText属性在两种情况下都是相同的,无论您将“Hello”之类的字符串指定给text还是htmlText(生成的htmlText值对其中任何一个都是相同的),但额外的一行仅在设置htmlText属性时出现

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

    或将htmlText分配给自身(您需要这样做来保留html并强制内部度量立即更新),然后问题就出现了。有人提到,如果您省略了结束标记

    ,那么问题就不会出现,这是真的。分配类似
    Hello
    的内容也不会触发问题

    总之,只有将自动调整大小的多行输入类型文本字段的htmlText属性设置为包含

    标记的值时,才会出现此问题。
    动态文本字段不会出现此问题,未自动调整大小的输入文本字段也不会出现此问题,自动调整大小的输入文本字段也不会出现此问题已编辑但未将
    标记分配给htmlText

    若要重现此问题,请在设计器中设置一个文本字段,并确保背景和大纲已打开,以便您可以看到字段的大小,然后它将是预期的单线高(多行文本字段)(假设它足够宽)。如果您转到代码并设置
    txtfld.htmlText=txtfld.htmlText
    (将其设置为自身),这仅仅是htmlText属性的赋值(给它自己的相同值)导致添加一个额外的行。htmlText的值实际上是相同的,它实际上没有隐藏在一个额外的
    标记或任何东西中…它只是显示这个不应该在那里的尾随返回值。正如所料,当您选中“呈现为html”时也会发生同样的情况在文本字段的Flash属性中,这似乎会导致设置htmlText而不是文本,并导致出现问题

    实际上不太可能有两种呈现模式,因为从技术上讲,它总是呈现htmlText(即htmlText始终有一个值,并且您可以始终使用setTextFormat设置某些文本段的文本格式,该文本段最初被指定为“文本”,这不会触发某种切换到“html呈现模式”或者诸如此类的

    这种行为似乎严格地说是由于分配了htmlText属性

    避免这种情况的唯一方法(除了设置htmlText、读回值、去掉最后一个

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


    正如在最初的问题帖子中提到的,这个错误的真正症结在于无法保存和恢复TextField的htmlText值,因为将htmlText设置为包含html的字符串(特别是p标记),导致添加这一额外的行,再加上这样一个事实,即如果您特别希望文本字段的大小正确,则可能会启用自动调整大小,而这正是当此问题逐渐出现并确保大小不正确时的情况。

    共享一些代码?可能是一个屏幕截图。好的,下面是一些屏幕截图:第一个显示的是R保存前第二个是在用户保存之后,然后htmltext被重新呈现,因此当您保存编辑器生成的HTML文本时,它不包括额外的换行符?但当您稍后在编辑器的
    htmltext
    属性上设置此保存的文本时,不知何故会添加此换行符?不完全是这样,在编辑器中从来没有真正的换行符htmltext,它是在结束段落标记重新呈现时添加的。因此htmltext在两种方式中都是相同的。

    非常适合

    ,从屏幕截图上看,似乎