`
uule
  • 浏览: 6352309 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Flex单击与双击

    博客分类:
  • Flex
 
阅读更多

因为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);
}

 

参考:Flex中区分单击和双击的方法

[ActionScript 3] 关于屏蔽双击事件中的单击事件的讨论

Flex Timer 定时器

 

 

分享到:
评论

相关推荐

    使用Timer实现FLEX单击双击分离响应

    标题中的“使用Timer实现FLEX单击双击分离响应”是指在Adobe Flex应用程序开发中,如何通过使用Timer类来区分用户的单击事件和双击事件。在Flex中,用户界面的交互是通过事件驱动的方式进行的,单击和双击事件也不...

    flex单击图片拖动,双击图片旋转,双击单击同时用

    flex单击图片拖动,双击图片旋转,双击单击同时用,虽然不难,但对初学者很有帮助的,找到一个很好的例子来学习flex会事半功倍

    flex点击按钮或双击实现全屏

    这里仅输出一条调试信息,实际应用中应该实现与上述单击按钮相似的逻辑。 ### 四、总结 以上两种方法都可以有效地实现Flex应用的全屏切换功能。选择哪种方式取决于具体的应用场景和个人偏好。单击按钮的方式更适合...

    Flex 通过年月控制日历

    通过自定义组件和事件处理,我们可以实现年月控件、日历控件(阳历和阴历)、级联功能以及单击双击交互,从而满足用户在日期选择上的各种需求。对于Flex开发者来说,掌握这些技术将极大地提升他们的开发效率和应用...

    30多个 flex3 源码(整理)

    2. **判断鼠标是双击还是单击**:在Flex编程中,我们可以通过监听MouseEvent类的`click`和`doubleClick`事件来区分鼠标单击和双击。通过设置合适的事件处理器,可以为不同的操作提供相应的响应。 3. **图表/线状图/...

    ArcGIS API for Flex library

    - `clickRecenterEnabled`: 设置为 `true` 可启用 Shift+单击地图以重新定位中心点的功能。 - `crosshairVisible`: 设置为 `true` 可在地图中心显示十字线。 - `doubleClickZoomEnabled`: 设置为 `true` 可启用双击...

    Flex_KBD.rar_Flex_KBD.rar_flex

    - 按键事件处理:处理用户的按键输入,包括单击、双击、长按等。 - 动态调整:根据设备状态或用户设置动态调整键盘布局。 - 用户反馈机制:通过LED指示、振动反馈等方式提供用户交互体验。 - 键盘驱动适配:与...

    gestouch手势触控插件FLEX

    Gestouch插件,全称为Gestouch for Flex,是一个专门为Flex项目设计的手势识别库,它能够帮助开发者轻松地实现各种触摸手势,如单击、双击、滑动、旋转、缩放等。这一插件不仅适用于桌面应用,也广泛应用于手机和...

    Jquery flexigrid插件 添加checkbox,(双击事件)onRowDblclick

    - `onSelectRow` 和 `onUnselectRow`:单击行时触发的回调函数。 - `onSortCol`:当列被排序时触发的回调函数。 总的来说,Jquery Flexigrid插件提供了强大的数据展示和交互能力,通过合理的配置和事件监听,我们...

    SingleClickCellEditor

    在这个例子中,我们看到如何利用`itemRenderer`作为编辑器来提升用户体验,实现单击单元格即可进行编辑的功能。这种设计模式允许用户更加高效地操作大量数据,无需额外的确认或双击操作。 `DataGrid`是Adobe Flex...

    MonoDevelop中文版 V6.1.2.44.doc

    1. 先安装 MonoDevelop 的组件“GTK# for .net”双击它开始安装,弹出的对话框中单击“next”。 2. 安装完成后点击“finish”开始安装组件“MSbuild tools”; 3. 按照安装提示向导安装软件; 4. 安装完成后单击...

    jmeter图文入门教程

    在Windows系统中,可以进入jmeter的bin目录,并通过命令行执行call jmeter.bat来启动JMeter,或直接双击jmeter.bat文件。在Linux系统中,执行sh jmeter.sh启动JMeter。在Mac系统中,执行sh jmeter启动JMeter。以...

    openfire+xiff 聊天室开发设计笔记

    **解决方案**: 确认Flex项目的主题设置是否正确,通常需要确保使用了支持特定样式的主题,例如“halo”。 以上就是关于Openfire服务器配置、XIFF客户端配置以及常见问题解决方法的详细指南。通过这些步骤,您可以...

    teamcenter安装

    单击“下一步”。 3. 选择“Yes”继续。 4. 勾选“Install database software only”选项进行数据库软件的独立安装。 5. 选择“Single instance database installation”进行单一实例数据库安装。 6. 按照向导...

    hmtl 多列选择

    - **双击选择**:通过监听`dblclick`事件,当用户双击某个选项时,可以执行相应的选择操作。 4. **事件处理**: jQuery提供了丰富的事件处理方法,如`.click()`, `.change()`, `.mouseover()`, `.mouseout()`等,...

    五大主流智能手环MEMS传感器盘点

    * 多功能:包括鼠标单击/双击识别、4D/6D方向检测以及省电睡眠到唤醒模式 二、博世智能手环代表:ibody Rainbow、Jawbone UP、Smart Watch2等 博世Sensortec的BMA250是为电子消费市场设计的一款数字输出的低功耗...

Global site tag (gtag.js) - Google Analytics