在Flex中动态创建按钮

时间:2012-10-30 11:04:48

标签: actionscript-3 flex4

我对Flex SDK有一个非常基本的问题,但我没有找到任何资源来解决我的问题,老实说不知道是否有可能做我想做的事情。所以这是我的问题:

我使用Adobe Flex Builder 4.6创建了Flex项目。然后我在主MXML文件中放置了按钮(假设它的id为btn1)。我想直接从主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编程范例中的某些内容 - 请为我指出。

1 个答案:

答案 0 :(得分:2)

您必须使用 addElement() 将该按钮添加到视图中。

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

addElement(btn2);