昨天在做Flex开拓的时候,碰着了这样一种操纵,之前也碰着过,当时的步伐不是很好,本日又碰上了雷同的问题,先看一张图吧!
这是系统界面或许的样子,此刻的环境是,赤色区域是一个窗口、页面、组件这样的,需要在这个组件之外的处所单击就埋没这个组件,以前的想法很简朴,就是通过坐标判定,可是此刻这个赤色的区域的布局较量巨大,所以不知道有什么样的方法可以办理,厥后碰着了一个网友,给了我一段代码,我以为还不错,我以为算是能力性的对象吧!所以分享一下:
首先,在玄色的区域监听单击事件,然后在单击事件的处理惩罚函数中通过contains要领判定。代码如下所示:
复制代码 代码如下:
public functionclickHandler(event:MouseEvent):void
{
if(!赤色区域.contains(event.target asDisplayObject) && !绿色区域.contains(event.target as DisplayObject))
{
赤色区域.visible = false;
}
}
这段代码,我认为照旧较量一种好的办理方案。最开始的想法是通过坐标来判定,然后又冒出了一个想法就是在赤色区域上监听鼠标分开,在分开的处理惩罚函数中监听单击的事件,可是这种要领仿佛欠好使。于是问了一下网友,就知道了这种要领。
这里尚有一个小插曲:我的qq头像是路飞的,很巧合的是辅佐我办理问题的是一个索隆头像的网友,办理完问题之后,他还叫了我一声船长,很有趣啊!