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

短い答え:

ライフサイクルメソッドはアプリで実行されていません。したがって、btの子コンポーネントを作成するためにcreateChildren()メソッドは実行されませんでした。

長い答え:

表示階層に上位レベルのFlexコンポーネントがないため、メインアプリケーションファイルでは状況が少し複雑になります。詳細は不明ですが..

Flexコンパイラは、このコンポーネント(およびFlex Framework)をセットアップするために、アプリ全体を機能させるのに役立つ魔法を使っていると思います。本質的には、コンポーネントの独自のインスタンスを作成することにより、その作業をバイパスしています。

于 2012-12-13T15:50:13.217 に答える