使用 MXML 或 actionscript 单击按钮添加文本字段

Posted

技术标签:

【中文标题】使用 MXML 或 actionscript 单击按钮添加文本字段【英文标题】:Adding a text field with the click of a button using MXML or actionscript 【发布时间】:2014-03-15 17:23:41 【问题描述】:

我想添加一个按钮,单击该按钮会添加另一个文本字段。我正在使用 adobe flash builder 编写应用程序,因此它需要使用 MXML 或 actionscript。关于如何做到这一点的任何想法?

事件处理程序按钮当前指向此代码,但是在第一次添加文本框后,它停止并且不再添加。如何在每次单击按钮时循环添加文本字段?

<fx:Script>

    <![CDATA[
        protected function tableID(event:MouseEvent):void
                       
            var name:TextInput = new TextInput;
            addElement(name);
            name.move(50, 200);
        
    ]]>
</fx:Script>

MXML:

<s:Button id="addBtn" x="175" y="450" label="+" click="tableID(event)" />

【问题讨论】:

你怎么知道 textinput 只在第一次点击时被添加,而不是在任何后续点击中?查看您的代码,我的假设是每次您单击按钮时,都会添加文本框,但是,它会添加到先前的文本输入之上,因此您无法直观地看到它。您还可以为按钮节点发布您的 MXML,与事件挂钩。 【参考方案1】:

只需为文本字段使用布尔变量。将变量设置为 includeInLayout 和对文本字段可见。单击按钮时,将布尔变量的条件设置为真或假。我想这会对你有所帮助。

【讨论】:

【参考方案2】:

你可以试试这个方法:

<fx:Script>
    <![CDATA[
        import mx.controls.TextInput;
        protected function bt_clickHandler(event:MouseEvent):void
        
            // TODO Auto-generated method stub
            var item:TextInput = new TextInput();
            item.width = 50;
            _parent.addElement(item);
        
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:Tile id="_parent"  >
    <s:Button id="bt" label="+" click="bt_clickHandler(event)"/>
</mx:Tile>

【讨论】:

以上是关于使用 MXML 或 actionscript 单击按钮添加文本字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 mxml 脚本代码连接 ActionScript 类(Socket)

在 flex 应用程序中使用 mxml 优于 actionscript 有啥优势?

MXML 和用于移动设备的 ActionScript 之间的真正区别是啥?

如何在 ActionScript 中使用 MXML mx.controls.Label

在 Actionscript3 中编写 MXML 代码

如何从 flex (mxml/actionscript?