Flex引用子元素

时间:2013-12-17 08:13:03

标签: actionscript-3 flash flex flash-builder

我们如何引用在运行时动态添加的元素?

示例代码:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" applicationComplete="init(event)">
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        protected function init(event:FlexEvent):void
        {
            // TODO Auto-generated method stub
            trace(button1.label);

            var newbtn:Button = new Button();
            newbtn.label = "New Button";
            newbtn.id = "button3";
            newbtn.name = "button3";

            mygroup.addElement(newbtn);

            trace(this["button3"].label);
        }

    ]]>
</fx:Script>
<s:HGroup id="mygroup">
    <s:Button id="button1" label="Button 1" />
    <s:Button id="button2" label="Button 2" />
</s:HGroup>
</s:WindowedApplication>

当我尝试运行上面的代码时,它会发送错误

Error #1069: Property button3 not found on project1 and there is no default value.

那么,我该如何调用新添加的按钮?

2 个答案:

答案 0 :(得分:0)

将您的实例存储在变量中,并在您感觉到它时引用它。使用数组作为变量列表。

答案 1 :(得分:-1)

您可以尝试使用

var obj = this.getChildByName(“button3”);

之后,您可以使用obj来跟踪标签