在Flash AS3中构建弹出窗口的最佳方法是什么?

时间:2010-10-29 04:57:27

标签: actionscript-3 popup

我正在尝试在flash中完成一个“imagemap”,您点击图像中的不同区域,当您单击它时,会出现一个弹出窗口(在Flash中),显示有关所点击对象的更多信息。弹出窗口有一个关闭按钮,然后可以关闭弹出窗口。

我最大的麻烦就是我现在拥有代码的方式是当你点击地图的一个区域时,它会动态创建一个弹出窗口,然后我使用addChild(_myPopup)将它添加到显示列表中。对我来说,这种方法的问题在于Popup现在是我刚刚按下的按钮的Child,但是这个对象组织对我来说并没有多大意义。我想让弹出窗口不是按钮的子节点,而是直接放在它自己的图层或舞台的子节点上。

构建这样的对象组织的好方法和代码架构是什么?我是AS3的新手,我已经构建了一些小应用程序,但我的知识有限。

由于

更新
好吧看起来像从按钮内部调用stage.addChild(myPopup)非常好。这是好习惯吗?

2 个答案:

答案 0 :(得分:0)

假设您的层次结构如下所示:

stage
  Main class
    Image class
      Button

最好不要在显示列表中向上调用,每个对象只处理它的子项。然而,事件是一种很好的向上沟通方式。让Button调度一个事件,最好是一个自定义事件,然后使用主类中的一个侦听器来处理它,然后处理在所有事情之上创建一个弹出窗口。

答案 1 :(得分:0)

组织可见应用程序图层的常见做法是:

  • 阶段
    • 所有孩子的主要班级
    • 弹出容器
    • 工具提示容器
    • 鼠标光标容器(显然不再需要,因为播放器10支持自定义光标)

因此,您始终在主类上方的弹出容器中创建弹出窗口。如果你有工具提示,他们应该进入工具提示容器。这种方法可以保证弹出窗口始终在主应用程序上方可见,并且工具提示始终可见于所有内容之上。