0

init() メソッドでボタンを使用しようとしています。

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="Test"
        creationComplete="init()">

ボタンで何かをしようとすると、言及されたエラーが表示されます。おそらくまだロードされていないと思いますか?

function init():void{
     myButton.thisorthat == makes the error.
}

*編集** ボタンはMXMLで作成されますが、問題ではありませんが、これはフレックスモバイルアプリ用です。

4

1 に答える 1

3

実際、それ重要です。NavigatorContent (子がこれらのタイプのコンテナーのいずれかのサブセットであると仮定) について覚えておくべきことの 1 つは、対応するハローと一緒に、すべてコンテンツ作成ポリシーが deferred に設定されていることです。つまり、ビュー/ビュースタックの最上位レイヤーを作成することを意味します。 、しかし、ユーザーが実際にその特定の子に移動するまで、それは子ではありません。チートの1 つは、ポリシーを「ALL」に設定することですが、代わりにFlexEvent.CONTENT_CREATION_COMPLETEを実際にリッスンすることをお勧めします (これは、ナビゲーション コンテナーの子からブロードキャストされます)。

例えば:

<halo:ViewStack id="setupStack" width="100%" height="100%">
    <api:FileSelector width="100%" height="100%" owner="{this}" 
                      enumerationMode="{FileSystemEnumerationMode.DIRECTORIES_ONLY}"
                      hint="{networkDbAccessHint}" />
    <!- this is valid, but not it's children until contentCreateComplete is fired -->
    <api:DataImport width="100%" height="100%" owner="{this}" />
</halo:ViewStack>

「FileSelector」と「DataImport」の両方がイベントをブロードキャストします (s:NavigatorContent を拡張します)。

于 2012-04-11T01:32:57.313 に答える