在 Flex 中获取文本输入字符数

Get textinput number of character in Flex

我在 flex 应用程序中有 textinput。

<s:TextInput id="txtGuestCount" maxChars="2" editable="false"/>

我将 maxChars 限制为 2。当我从 textinput 中删除 editable="false" 并使用键盘输入时,它会起作用。

问题:
但是当我使用按钮点击时同样的事情不起作用:

<s:Button width="50" height="50"  chromeColor="#ffffff" label="1" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="2" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="3" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="4" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="5" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="6" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="7" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="8" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="9" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50"  chromeColor="#ffffff" label="0" buttonMode="true" click="onNumberClick(event)"/>

在文本输入中单击按钮插入标签值,例如:

protected function onNumberClick(event:MouseEvent):void
{
   txtGuestCount.text += event.currentTarget.label;
}

上面的东西不工作。它会在 textInput 中插入超过 2 个字符。

有人帮我解决这个问题吗?
我如何限制文本输入中最多 2 个字符?

根据 manual,在代码中更改 text 时不检查 maxChars。所以,你必须手动控制 text 的新值不超过 2 个字符。一个例子:

protected function onNumberClick(event:MouseEvent):void
{
    var s:String=txtGuestCount.text;
    if (s.length==2) s=s.substr(1); // drop first char
    s+=event.currentTarget.label;
    // if (s.length>2) s=s.substr(0,2); // if necessary, truncate
    txtGuestCount.text = s;
}