AS3 TextArea 点击处理

Posted

技术标签:

【中文标题】AS3 TextArea 点击处理【英文标题】:AS3 TextArea click handling 【发布时间】:2015-02-06 13:51:37 【问题描述】:

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

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

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

<TextArea id="notesInput" text="Poznámky.."
                           
                          verticalScrollPolicy="auto"/>

感谢你们的时间和帮助。

【问题讨论】:

【参考方案1】:

您可以使用提示文字来满足您的要求:

<s:TextArea id="notesInput"
            prompt="Default Text"
             
            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"
             
            verticalScrollPolicy="auto"
            focusIn="onFocusIn()"
            focusOut="onFocusOut()"/>

【讨论】:

【参考方案2】:

为此,您可以像这样使用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"/>

【讨论】:

以上是关于AS3 TextArea 点击处理的主要内容,如果未能解决你的问题,请参考以下文章

AS3格式化TextArea组件的文本

ActionScript 3 AS3防止TextArea组件中的多线

ActionScript 3 AS3格式化TextArea组件的文本

AS3里【TextField】于【TextArea】有啥区别?

ActionScript 3 AS3:使用新的TextFormat()向TextArea组件添加样式

通过点击“Enter”从textarea提交数据