actionscript-3 - 在 Flex 中动态创建按钮

标签 actionscript-3 flex4

我有关于 Flex SDK 的非常基本的问题,但我没有找到任何解决我的问题的资源,而且老实说我不知道​​它是否可以做我想做的事情。所以这是我的问题:

我使用 Adob​​e Flex Builder 4.6 创建了 Flex 项目。然后我将按钮(假设它的 id 是 btn1)放置在主 MXML 文件中。我想从主 MXML 文件的脚本部分动态创建第二个按钮。具体来说,我想从 btn1 的按钮单击处理程序创建它。

这是我的 MXML 代码(它是项目中唯一的文件):

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[
            protected function btn1_clickHandler(event:MouseEvent):void
            {
                var btn2:Button = new Button();
                btn2.label = "Hello";
                btn2.x = 50;
                btn2.y = 50;
            }
        ]]>
    </fx:Script>


    <fx:Declarations>
        <!-- Non visual elements -->
    </fx:Declarations>

    <s:Button id="btn1" 
              x="10" y="10" 
              label="Кнопка"
              click="btn1_clickHandler(event)"/>

</s:Application>

但是当我点击btn1时 - 什么也没有发生。我可能不理解 Flex 编程范式中的某些内容 - 请为我指出。

最佳答案

您必须使用 addElement() 将按钮添加到 View 。

var btn2:Button = new Button();
btn2.label = "Hello";
btn2.x = 50;
btn2.y = 50;

addElement(btn2);

关于actionscript-3 - 在 Flex 中动态创建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13137639/

相关文章:

actionscript-3 - ActionScript 3 Dictionary 是 HashMap 吗?

flash - 当 .swf 和 http 目标都在 localhost 上时,为什么 Flash 需要 crossdomain.xml 文件?

apache-flex - mxmlc 嵌入 Assets

actionscript-3 - Flex 4 两个类在一个文件中

php - 我将如何在不使用 javascript 的情况下跟踪 flash 视频?

apache-flex - Flex : Listening for 'Hover' over Link in text area

actionscript-3 - 可以从 Flex Web 应用程序获取桌面通知吗?

apache-flex - 在 Flex 4/AS3 addchild 问题中绘制形状

actionscript-3 - FLEX DataGrid 列修改

Flash Builder - 如何构建或包含 SWC