在Flash/Actionscript 3中处理多个GUI

在Flash/Actionscript 3中处理多个GUI,flash,user-interface,actionscript,Flash,User Interface,Actionscript,我正试图找出使用Flash组件编写多个GUI窗口的最佳方法。我认为最好的处理方法是为我想要的每个窗口使用一个层,然后简单地隐藏/显示我想要的窗口层。最好不要单独使用actionscript 因为每一层都包含这些GUI组件,所以我将处理它们的actionscript代码放在每一层的第1帧中。这将所有GUI代码保持在一个位置,避免在主阶段类中声明和处理每个组件 我的问题是一个范围问题。主stage类可以访问其类中驻留在这些层上的所有组件,但框架层“frame 1”actionscript似乎无法访问

我正试图找出使用Flash组件编写多个GUI窗口的最佳方法。我认为最好的处理方法是为我想要的每个窗口使用一个层,然后简单地隐藏/显示我想要的窗口层。最好不要单独使用actionscript

因为每一层都包含这些GUI组件,所以我将处理它们的actionscript代码放在每一层的第1帧中。这将所有GUI代码保持在一个位置,避免在主阶段类中声明和处理每个组件

我的问题是一个范围问题。主stage类可以访问其类中驻留在这些层上的所有组件,但框架层“frame 1”actionscript似乎无法访问。我希望能够从层上的frame 1 actionscript代码中调用主stage类上的方法。这似乎不起作用,我甚至试着把舞台上的参照物和我班上的参照物联系起来。不知道这是否是愚蠢的尝试,但只是想找出一个办法

如果有人有更好的方法来处理这个问题,请让我知道。我的后备计划是避免在stage上拖放组件,而是单独使用actionscript,然后将这些组件组织到它们自己的类中,或者在主stage上为所有组件使用事件侦听器,这将使stage类中的所有GUI代码都膨胀


谢谢

首先,对于每个窗口使用一个层的方法,您会遇到一些麻烦。遗憾的是,这些层只在flash创作环境中使用,代码无法知道哪些层中包含哪些内容,因此您将无法(据我所知)以您想要的方式隐藏每个层的内容

有两种选择是:

  • 将每个窗口的组件放在电影剪辑中,这样可以使单个电影剪辑可见或不可见,每个窗口对应一个。它或多或少与您想要的图层相同,但使用包含每个窗口的movieclip
  • 不要使用层,而是使用框架。将第一个窗口的所有组件放在第1帧中,下一个窗口的组件放在第2帧中。这样,您可以通过移动播放头来控制您所在的窗口

关于你的范围错误,你能提供更多的细节吗?如果使用闪速打印,会出现什么错误?

啊,这正是我没有想到的。使用movieclip,只需将所有组件放入其中,然后将其拖到舞台上,并以这种方式使用。完美的那就行了。非常感谢你!