因为Flex AS3双击前会先调一遍单机,所以需要特殊处理。
使用Timer延迟判断是单击双击。
使用Timer时,接收到的对象已经由MouseEvent对象变为TimerEvent对象了,所以需要在外部定义一个数据对象,保存MouseEvent对象中传递的数据。
line.addEventListener(MouseEvent.CLICK, clickLineHandle); line.doubleClickEnabled = true; line.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickLineHandle); line.toolTip="单击展示服务调用详情\n双击展示服务明细";
var isDoubleClick:Boolean = false ;//判断是否是双击的标志 var _line:SequenceLine = null; public function clickLineHandle(event:MouseEvent):void { isDoubleClick = false ; _line = event.currentTarget as SequenceLine; var timer:Timer = new Timer(260, 1); timer.start();//也就是说两次单击间隔在260毫秒之内的就被认为是双击 timer.addEventListener(TimerEvent.TIMER, clickOrDouble); } public function doubleClickLineHandle(event:MouseEvent):void { isDoubleClick = true ; _line = event.currentTarget as SequenceLine; } private function clickOrDouble(event:TimerEvent):void { var data:EsbServiceProCusV = _line.data as EsbServiceProCusV; _line = null; if(isDoubleClick){ var evt:FlashDynamicEvent=new FlashDynamicEvent(FlashDynamicEvent.EVENT_LINE_DOUBLECLICK, true); evt.data= data.id; this.dispatchEvent(evt); }else{ var evt:FlashDynamicEvent=new FlashDynamicEvent(FlashDynamicEvent.EVENT_LINECLICK, true); evt.data= data.serviceNameEn; this.dispatchEvent(evt); } }
//////////////////////////////////////////////////////////////////////
以下为自定义事件及后续处理:
package com.event { import flash.events.Event; dynamic public class FlashDynamicEvent extends Event { public static const EVENT_LINECLICK:String="lineClick"; public static const EVENT_LINE_DOUBLECLICK:String="lineDoubleClick"; public var data:Object=new Object(); public var event:Event; public function FlashDynamicEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } } }
//mxml页面接收: _sequenceView.addEventListener(FlashDynamicEvent.EVENT_LINECLICK, lineClickHandle); _sequenceView.addEventListener(FlashDynamicEvent.EVENT_LINE_DOUBLECLICK, lineDoubleClickHandle); public function lineClickHandle(event:FlashDynamicEvent):void { var serviceNameEn:String = event.data as String; _applicationView.GetURLRequest.addEventListener(ResultEvent.RESULT, urlRequestResultHandle); _applicationView.GetURLRequest.addEventListener(FaultEvent.FAULT, errorHandle); //获取urlRequest地址 _applicationView.GetURLRequest(serviceNameEn,0); } public function lineDoubleClickHandle(event:FlashDynamicEvent):void { var serviceId:Number = event.data as Number; _applicationView.GetURLRequest.addEventListener(ResultEvent.RESULT, urlRequestResultHandle); _applicationView.GetURLRequest.addEventListener(FaultEvent.FAULT, errorHandle); _applicationView.GetURLRequest(null,serviceId); }
[ActionScript 3] 关于屏蔽双击事件中的单击事件的讨论
相关推荐
标题中的“使用Timer实现FLEX单击双击分离响应”是指在Adobe Flex应用程序开发中,如何通过使用Timer类来区分用户的单击事件和双击事件。在Flex中,用户界面的交互是通过事件驱动的方式进行的,单击和双击事件也不...
flex单击图片拖动,双击图片旋转,双击单击同时用,虽然不难,但对初学者很有帮助的,找到一个很好的例子来学习flex会事半功倍
这里仅输出一条调试信息,实际应用中应该实现与上述单击按钮相似的逻辑。 ### 四、总结 以上两种方法都可以有效地实现Flex应用的全屏切换功能。选择哪种方式取决于具体的应用场景和个人偏好。单击按钮的方式更适合...
通过自定义组件和事件处理,我们可以实现年月控件、日历控件(阳历和阴历)、级联功能以及单击双击交互,从而满足用户在日期选择上的各种需求。对于Flex开发者来说,掌握这些技术将极大地提升他们的开发效率和应用...
- 单击“Flash Builder 4”图标或链接进入下载页面。 - 选择“Download the Flash Builder 4 beta 2 release”进行下载。 - 需要Adobe ID和密码进行登录或免费注册。 2. **安装Flash Builder Beta**: - 双击...
2. **判断鼠标是双击还是单击**:在Flex编程中,我们可以通过监听MouseEvent类的`click`和`doubleClick`事件来区分鼠标单击和双击。通过设置合适的事件处理器,可以为不同的操作提供相应的响应。 3. **图表/线状图/...
- `clickRecenterEnabled`: 设置为 `true` 可启用 Shift+单击地图以重新定位中心点的功能。 - `crosshairVisible`: 设置为 `true` 可在地图中心显示十字线。 - `doubleClickZoomEnabled`: 设置为 `true` 可启用双击...
- 按键事件处理:处理用户的按键输入,包括单击、双击、长按等。 - 动态调整:根据设备状态或用户设置动态调整键盘布局。 - 用户反馈机制:通过LED指示、振动反馈等方式提供用户交互体验。 - 键盘驱动适配:与...
Gestouch插件,全称为Gestouch for Flex,是一个专门为Flex项目设计的手势识别库,它能够帮助开发者轻松地实现各种触摸手势,如单击、双击、滑动、旋转、缩放等。这一插件不仅适用于桌面应用,也广泛应用于手机和...
- `onSelectRow` 和 `onUnselectRow`:单击行时触发的回调函数。 - `onSortCol`:当列被排序时触发的回调函数。 总的来说,Jquery Flexigrid插件提供了强大的数据展示和交互能力,通过合理的配置和事件监听,我们...
在这个例子中,我们看到如何利用`itemRenderer`作为编辑器来提升用户体验,实现单击单元格即可进行编辑的功能。这种设计模式允许用户更加高效地操作大量数据,无需额外的确认或双击操作。 `DataGrid`是Adobe Flex...
1. 先安装 MonoDevelop 的组件“GTK# for .net”双击它开始安装,弹出的对话框中单击“next”。 2. 安装完成后点击“finish”开始安装组件“MSbuild tools”; 3. 按照安装提示向导安装软件; 4. 安装完成后单击...
在Windows系统中,可以进入jmeter的bin目录,并通过命令行执行call jmeter.bat来启动JMeter,或直接双击jmeter.bat文件。在Linux系统中,执行sh jmeter.sh启动JMeter。在Mac系统中,执行sh jmeter启动JMeter。以...
**解决方案**: 确认Flex项目的主题设置是否正确,通常需要确保使用了支持特定样式的主题,例如“halo”。 以上就是关于Openfire服务器配置、XIFF客户端配置以及常见问题解决方法的详细指南。通过这些步骤,您可以...
单击“下一步”。 3. 选择“Yes”继续。 4. 勾选“Install database software only”选项进行数据库软件的独立安装。 5. 选择“Single instance database installation”进行单一实例数据库安装。 6. 按照向导...
- **双击选择**:通过监听`dblclick`事件,当用户双击某个选项时,可以执行相应的选择操作。 4. **事件处理**: jQuery提供了丰富的事件处理方法,如`.click()`, `.change()`, `.mouseover()`, `.mouseout()`等,...
* 多功能:包括鼠标单击/双击识别、4D/6D方向检测以及省电睡眠到唤醒模式 二、博世智能手环代表:ibody Rainbow、Jawbone UP、Smart Watch2等 博世Sensortec的BMA250是为电子消费市场设计的一款数字输出的低功耗...