Flex中如何判断是否在组件之外单击_Flex

昨天在做Flex开发的时候,遇到了这样一种操作,之前也遇到过,那时的办法不是很好,今天又碰上了类似的问题,先看一张图吧!
 
这是系统界面大概的样子,现在的情况是,红色区域是一个窗口、页面、组件这样的,需要在这个组件之外的地方单击就隐藏这个组件,以前的想法很简单,就是通过坐标判断,但是现在这个红色的区域的结构比较复杂,所以不知道有什么样的方式可以解决,后来遇到了一个网友,给了我一段代码,我觉得还不错,我觉得算是技巧性的东西吧!所以分享一下:

首先,在黑色的区域监听单击事件,然后在单击事件的处理函数中通过contains方法判断。代码如下所示:

复制代码 代码如下:

public functionclickHandler(event:MouseEvent):void
{
if(!红色区域.contains(event.target asDisplayObject) && !绿色区域.contains(event.target as DisplayObject))
{
红色区域.visible = false;
}
}

这段代码,我认为还是比较一种好的解决方案。最开始的想法是通过坐标来判断,然后又冒出了一个想法就是在红色区域上监听鼠标离开,在离开的处理函数中监听单击的事件,但是这种方法好像不好使。于是问了一下网友,就知道了这种方法。

这里还有一个小插曲:我的qq头像是路飞的,很巧合的是帮助我解决问题的是一个索隆头像的网友,解决完问题之后,他还叫了我一声船长,很有趣啊!

时间: 2024-12-29 16:00:16

Flex中如何判断是否在组件之外单击_Flex的相关文章

使用flex中的httpservice方法与java进行交互_Flex

地球已经调至震动状态使用flex中的httpservice方法与java进行交互: 一.写服务器: 1.在myeclipse中建立web项目 2.写一个用来打印xml的servlet 3.当使用httpservice与java进行交互的时候不用改写remoting-config.xml文件 4.web.xml文件中配置servlet的访问地址(一般不用配置,当一个servlet建好之后myeclipse就会自动配置好web.xml文 件,不用去改动,但是需要注意的是,当你在导入blazeds开发

Flex中Array的IndexOf 的作用示例介绍_Flex

Flex中 Array 的IndexOf 的作用 1.说明 indexOf用于在索引中从小到大查找,如果查得到就返回索引值,查不到就返回-1: 2.实例 (1)设计源码 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://n

flex中如何用图像给按钮做皮肤_Flex

复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009

在flex中执行一个javascript方法的简单方式_Flex

例如打开一个新窗口: 复制代码 代码如下: ExternalInterface.call("eval", "myWin = window.open('" + url + "', '" + windowId + "', 'toolbar=1,scrollbars=0,location=1,statusbar=0,menubar=0,resizable=0,width=" + width + ",height="

Flex中的HDividedBox和VDividedBox的比较附图_Flex

1.HDividedBox (1)源码 HVD.mxml: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://n

flex 监听事件-flex中的datefield组件中点击下拉选择日期改变时派发事件

问题描述 flex中的datefield组件中点击下拉选择日期改变时派发事件 如题,我需要在选择日期时监听change事件,执行脚本,但是为什么每次会执行两次脚本. 怎么可以控制只在选择日期之后派发,而在点击时不派发. /** 添加监听事件 / this.addEventListener(CalendarLayoutChangeEvent.CHANGE, selectedChange); /* 对象更改处理函数 */ protected function selectedChange(event

Flex中TextInput组件设置限制某些字符的输入的方法_Flex

1. 限制某个字符的输入,用符号 ^ 跟上要限制的字符,可跟多个字符 <!-- 限制字符"~"的输入 --> <mx:TextInput id="xxx" restrict="^~" /> <!-- 限制字符"ab"的输入 --> <mx:TextInput id="xxx" restrict="^ab" /> 2. 设置只能输入某些字符,

在Flex中嵌入完整HTML页面

页面 有时候我们需要在Flex应用中嵌入HTML代码,根据嵌入HTML要求的不同有以下两种方法: 1.Flex文本组件(Label.Text.TextArea)的htmlText属性支持一些基本的HTML代码,例如: <mx:TextArea>   <mx:htmlText>     <![CDATA[       <p align="center"><font size="15" color="#3399f

解决办法:Flex4使用Efflex_v0.03.swc (Fx4/FP10),在该命名空间中多次定义了组件 MotionPath……

原文:http://hi.baidu.com/mhl29/item/626ea382bec5d1cdee083de1 问题:     在该命名空间中多次定义了组件 SimpleMotionPath.删除到 spark.effects.animation:SimpleMotionPath 或 spark.effects:SimpleMotionPath 的映射.   描述:     在Flex4使用Efflex_v0.03.swc (Fx4/FP10)的时候,报的一个错误.   解决办法: 1.