Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在Flash AS3内部构建弹出窗口的最佳方法是什么_Actionscript 3_Popup - Fatal编程技术网

Actionscript 3 在Flash AS3内部构建弹出窗口的最佳方法是什么

Actionscript 3 在Flash AS3内部构建弹出窗口的最佳方法是什么,actionscript-3,popup,Actionscript 3,Popup,我试图在flash中完成一个“imagemap”,你点击图像中的不同区域,当你点击它时,一个弹出窗口(在flash中)出现,显示关于被点击对象的更多信息。弹出窗口有一个关闭按钮,可以关闭弹出窗口 我最大的问题是,我现在的代码是当你点击地图的某个区域时,它会动态创建一个弹出窗口,然后我使用addChild(_myPopup)将其添加到显示列表中。对我来说,这种方法的问题是,弹出窗口现在是我刚才按下的按钮的子按钮,但是这个对象组织对我来说没有意义。我希望弹出窗口不是按钮的子项,而是在它自己的层上,或

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

我最大的问题是,我现在的代码是当你点击地图的某个区域时,它会动态创建一个弹出窗口,然后我使用addChild(_myPopup)将其添加到显示列表中。对我来说,这种方法的问题是,弹出窗口现在是我刚才按下的按钮的子按钮,但是这个对象组织对我来说没有意义。我希望弹出窗口不是按钮的子项,而是在它自己的层上,或者直接是舞台的子项

构建这样一个对象组织的好方法和代码体系结构是什么?我对AS3相当陌生,我已经构建了一些小应用程序,但我的知识有限

谢谢

更新

ok看起来像是在调用stage.addChild(myPopup),按钮内部的效果非常好。这是一种良好的做法吗?

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

stage Main class Image class Button 阶段 主类 图像类 按钮
最好不要在显示列表中向上调用,每个对象只处理它的子对象。然而,事件是向上沟通的好方式。让按钮分派一个事件,最好是自定义事件,然后使用主类中的侦听器处理该事件,然后在所有事件之上创建一个弹出窗口

组织可视应用程序层的一种常见做法是:

  • 舞台
    • 所有孩子都上主课
    • 弹出式容器
    • 工具提示容器
    • 鼠标光标容器(显然不再需要,因为播放器10支持自定义光标)

因此,您总是在主类上方的弹出窗口容器中创建弹出窗口。如果您想要工具提示,它们应该进入工具提示容器。这种方法保证了弹出窗口在主应用程序上方始终可见,工具提示在所有内容上方始终可见。

谢谢grapefrukt。最好知道在显示列表中向上调用是不好的做法。发送活动听起来很棒:)