AS3 TextArea单击处理

时间:2014-12-08 20:04:15

标签: actionscript-3 flex textarea

我在处理TextArea上的点击事件时遇到问题。我正在使用Flash Mobile开发移动应用。我想在区域中显示默认文本,并在用户选择字段时使其消失。

问题是,只有当我点击TextArea的边框时才会抛出该事件。选择光标处于活动状态时,它永远不会发生。我还尝试向notesInput添加一个错误的可编辑属性,并在处理程序中将其设置为true,它没有帮助。

private function notesClickHandler(event:Event):void{
            notesInput.text = "";
            notesInput.removeEventListener(MouseEvent.CLICK, notesClickHandler);
            form.invalidElements;
        }

<TextArea id="notesInput" text="Poznámky.."
                          height="150" width="100%"
                          verticalScrollPolicy="auto"/>

谢谢你们的时间和帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用符合要求的提示文字

<s:TextArea id="notesInput"
            prompt="Default Text"
            height="150" width="100%"
            verticalScrollPolicy="auto"/>

当你聚焦时,它不会清除默认文本。但是当你在TextArea中聚焦时,你可以通过清除提示文本来实现这一点。

<fx:Script><![CDATA[
    private function onFocusIn():void
    {
        notesInput.prompt = "";
    }
    private function onFocusOut():void
    {
        notesInput.prompt = "Default Text";
    }
    ]]></fx:Script>
<s:TextArea id="notesInput"
            prompt="Default Text"
            height="150" width="100%"
            verticalScrollPolicy="auto"
            focusIn="onFocusIn()"
            focusOut="onFocusOut()"/>

答案 1 :(得分:1)

为此您可以使用focusIn这样的事件:

private function text_area_focusInHandler(event:FocusEvent):void
{
    text_area.text = ''         
}

<s:TextArea id="text_area" x="10" y="10" focusIn="text_area_focusInHandler(event)" text="default text"/>