如果它是文本区域flex as3中的最后一个字符,则无法删除新行

时间:2015-09-21 06:30:14

标签: actionscript-3 flex

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
    <mx:Script>
        <![CDATA[               
            protected function button1_clickHandler(event:MouseEvent):void
            {
                var str:String = textId.text;
            }               
        ]]>
    </mx:Script>
    <mx:VBox>               
    <mx:HBox>
        <mx:TextArea id="textId" restrict="^\r"/>
    </mx:HBox>
    <mx:HBox>
        <mx:Button label="Click Here" click="button1_clickHandler(event)" />
    </mx:HBox>
    </mx:VBox>
</mx:Application>

首先在文本区域输入文本:“hi \n”,单击按钮查看textId.text中的文本。现在删除最后一个字符,使文本为“hi”。但是在textId.text中,结果显示为“hi \n”。最后的新行不会被删除。

2 个答案:

答案 0 :(得分:0)

如果您不想在 TextArea 中输入文字的开头和结尾保存空白字符,可以使用 trim 功能< / em>如下:

ifvisible.setIdleDuration(120); // Page will become idle after 120 seconds

ifvisible.on("idle", function(){
   // do something
});

修剪功能转换&#34;喜<fx:Script> <![CDATA[ import mx.utils.StringUtil; protected function button1_clickHandler(event:MouseEvent):void { var str:String = StringUtil.trim(textId.text); textId.text = str; } ]]> </fx:Script> &#34;到&#34;嗨&#34;。

答案 1 :(得分:0)

看起来它可能是flash中的一个错误......

TextArea控件内部有一个flash.text.TextField控件,在某些情况下,无法正确发出Event( Event.CHANGE )TextArea控件使用此更改事件来更新其内部属性(包括其自己的.text属性)。这是两个这样的情况,似乎发生了这个错误:

  • 当您按 Enter 时,光标位于文本输入末尾,该文本输入先前以非空格结束。

  • Backspace 删除删除文本输入末尾的换行符,并且该换行符之前的文本为非空格。< / p>

后一种情况是您所指的情况。内部flash.text.TextField控件末尾的换行符已删除,但TextArea的{​​{1}}属性未正确更新以反映更改

这是一个非常丑陋的解决方法:

.text

如果你找到了更好的解决方法,我很想知道!