Apache flex Flex和假的Mxml初始化,但没有实际显示组件(更直观)

Apache flex Flex和假的Mxml初始化,但没有实际显示组件(更直观),apache-flex,flash,actionscript-3,user-interface,events,Apache Flex,Flash,Actionscript 3,User Interface,Events,我有一个标题Windows mxml类,它有几个组件和侦听器。 在creationComplete和init状态下,我添加了一些侦听器,用于侦听gui上的事件 此TitleWindow仅在用户单击“按钮”时显示,我使用以下代码将TitleWindow设置为单例: public static function getInstance():MyWindow { if ( MyWindow.singleton ) { return MyWindow.singleton;

我有一个标题Windows mxml类,它有几个组件和侦听器。 在creationComplete和init状态下,我添加了一些侦听器,用于侦听gui上的事件

此TitleWindow仅在用户单击“按钮”时显示,我使用以下代码将TitleWindow设置为单例:

public static function getInstance():MyWindow
{
    if ( MyWindow.singleton )
    {
        return MyWindow.singleton;
    }
    else{
        MyWindow.singleton = new MyWindow();
        return MyWindow.singleton;
    }            
}
我需要一个单例,因为用户会多次调用此窗口,而我只需要一个

问题在于以下一些特殊的外部事件,我需要在MyWindow的按钮上“修改”一些侦听器(删除侦听器并添加新的侦听器),甚至在它显示一次之前

当我的应用程序启动时,我的内存中仍然有MyWindow.getInstance()。 但是,如果在应用程序启动时使用以下代码时未发生组件的实际呈现,则添加/删除侦听器似乎没有任何效果

  myWindow= MyWindow.getInstance();
  myWindow.initialize();
毫不奇怪,如果我至少“显示”(“渲染”)一次myWindow,那么myWindow实例上的事件修改就可以完美地工作

如何在启动时不显示此组件的完成初始化


谢谢

哪种容器可以容纳您的按钮?如果您正在使用,可以尝试将设置为
all
。一次性创造出他们所有的孩子,你不应该面对这个问题

从Flex 3.0文档中,我可以检索到:

除应用程序容器外,所有容器的默认创建策略都是父容器的策略。应用程序容器的默认策略为“自动”

这似乎是你所有麻烦的原因


更新:我之前没有提到这一点,因为我认为这是意料之中的:)将
creationPolicy
设置为
all
会使应用程序加载更慢。因此,请继续阅读——这项技术可以帮助您选择是一次性显示控件(这是创建所有控件后的默认行为)还是在创建控件时逐步显示控件。

您是对的,现在的问题是,启动时初始化特定窗口需要2秒并挂起系统,我想知道是否有一个事件需要知道渲染何时完成(如果您阅读了文档,您已经知道这一点:)