在用Flex中的Callout容器时遇到了模态容器与非模态容器的问题,这听起来还挺抽象的,但是我一解释你肯定就明白了。“模态”在百度百科中的定义为:模态是结构的特性,每一个模态具有特定的、和模态。这个定义其实跟模态容器和非模态容器中的内容没有多大的联系。
其实在Flex中的模态容器就是指当这个容器处于打开状态时,容器将接受用户的所有输入,或者换一种说法可能更形象,用户的所有输入将被当成是对容器的操作,用户也无法选择容器之外的内容。只有这个容器关闭之后系统才能够把事件分配给其他的容器或控件。比如你在使用QQ浏览器时可能遇到这样的退出选择框,它就是一个典型的模态容器:
而如果是非模态容器的话,如果当你打开容器时并不在容器中输入,而是选择了屏幕的其他区域,则非模态容器不接受输入且会自动关闭,只有你选择了容器中的内容容器才会接受输入。经过这样一解释,你可能就明白了,模态容器有强制用户对容器输入的意思,因为除非你不输入或者直接退出,不然无法选择屏幕中的内容;而非模态容器则自由得多,如果你选择了容器之外的内容,容器不接受你的输入的同时还会乖乖地自动关闭。