我有这个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
为空。我想访问按钮:(
答案 0 :(得分:1)
简答:
生命周期方法尚未在app上运行;所以没有执行createChildren()方法来创建bt的子组件。
更长的答案:
主应用程序文件的情况稍微复杂一些,因为显示层次结构中没有更高级别的Flex组件。我不清楚所有细节,但是......
我认为Flex Compiler在设置这个组件和Flex框架方面做了一些魔术,它有助于整个应用程序的运行。实际上,您通过创建自己的组件实例来绕过该工作。