actionscript 3 - Flex限制文本区域的字符数



可能这个问题以前问过,但是没有得到任何正确的答案。

<s:TextArea fontSize="14" heightInLines="15" widthInChars="40" />

我有textarea,我想限制(允许)最大15行用户可以输入不超过这个。
我试图找出任何可用的属性或尝试做编程,但是,没有得到我不会。

在文本更改时试图找出行数,但是没有成功。

var textLength:Number = event.currentTarget.text.length; //It gives length of text.

我还想限制单行最多40个字符。然后在用户输入任何文本后,转到下面一行。
这可能吗?

如有任何帮助,不胜感激。

编辑:

我像下面这样限制行数:

protected function onKeyDown(event:KeyboardEvent):void
{
    if(txtArea.textFlow.flowComposer.numLines > txtArea.heightInLines && event.keyCode == Keyboard.ENTER)
    {
        txtArea.text = txtArea.text.substr(0, txtArea.selectionActivePosition-1) + txtArea.text.substr(txtArea.selectionActivePosition, txtArea.text.length);
    } 
}

但是,仍然不能限制每行40个字符。我如何给出特定线路的限制?

这只是为了自定义已经为您实现的逻辑。你必须自己做。

监听文本输入事件

input.addEventListener(TextEvent.TEXT_INPUT, onInput);
在该处理程序中,防止默认行为并执行所需的逻辑以将text属性设置为您想要的结果。
private function onInput(e:TextEvent):void
{     
    e.preventDefault();
    trace("current text: " + e.target.text);
    trace("inserted text: " + e.text);
    // perform logic here
    e.target.text = "result";
}

在您的示例中,最方便的逻辑可能是使用匹配最多40组(最多15个字符)加上换行符的regex模式。

最新更新