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 btw 中创建的,这并不重要,但这适用于 flex 移动应用程序。

4

1 回答 1

3

其实这很重要。关于 NavigatorContent 的一件事(假设您的孩子是这些类型容器之一的子集)与他们的 halo 对应物一起要记住的是,他们都有一个内容创建策略设置为 deferred - 这意味着它创建了视图/视图堆栈的最父层,但在用户实际导航到该特定孩子之前,它不是孩子。一种作弊是将策略设置为“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 回答