1

我有这个 App.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">
    <s:Button id="bt" label="click me"/>
</s:Application>

而这个测试用例:

package flexUnitTests
{
    import flexunit.framework.Assert;

    public class AppTest
    {       
        [Test]
        public function testApp():void
        {
            var app:App = new App();
            Assert.assertNotNull(app.bt);
        }
    }
}   

app.bt为空。我想访问按钮:(

4

1 回答 1

1

简短的回答:

生命周期方法尚未在应用程序上运行;所以没有执行 createChildren() 方法来创建 bt 的子组件。

更长的答案:

主应用程序文件的情况稍微复杂一些,因为在显示层次结构中没有更高级别的 Flex 组件。我不清楚所有细节,但是..

我认为 Flex 编译器在设置这个组件(以及 Flex 框架)方面发挥了一些作用,这有助于使整个应用程序正常工作。本质上,您通过创建自己的组件实例来绕过这项工作。

于 2012-12-13T15:50:13.217 回答