在Flash / Actionscript 3中处理多个GUI

时间:2009-12-04 05:35:16

标签: flash user-interface actionscript

我正在尝试找出使用Flash组件编写多个GUI窗口的最佳方法。我认为处理这个问题的最好方法是为我想要的每个窗口使用一个图层,然后只需隐藏/显示我想要的窗口图层。最好不要单独使用动作。

由于每个图层都包含这些GUI组件,因此我将actionscript代码放在每个图层的第1帧中。这将所有GUI代码保存在一个位置,并避免让我在主阶段类中声明和处理每个组件。

我的问题是一个范围问题。主阶段类可以访问其类中驻留在这些层上的所有组件,但框架层“第1帧”动作脚本似乎不是。我希望能够从图层上的第1帧动作脚本代码中调用主舞台类的方法。它似乎不起作用,我甚至尝试将阶段引用转换为我的类的引用。不确定这是否是愚蠢的尝试,但只是想找到一种方法。

如果有人有更好的方法来解决这个问题,请告诉我。我的后备计划是避免拖放舞台上的组件,而是单独使用actionscript,然后将这些组件组织到自己的类中,或者在主舞台上为所有组件使用事件侦听器,这会使舞台类膨胀所有GUI代码。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,对于为每个窗口使用图层的方法,您会遇到一些麻烦。可悲的是,这些图层只是在flash创作环境中使用的,代码没有任何方法可以知道什么是在哪一层,所以你将无法(据我所知)隐藏内容每一层你想要的方式。

有两种选择:

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

关于您的范围错误,您能提供更多详细信息吗?闪存打印会出现什么错误?