AS3 双击管理工具

实现快速双击触发的Flash交互工具
package
{
	import flash.display.InteractiveObject;
	import flash.events.MouseEvent;
	import flash.utils.getTimer;
	
	/**
	 * 双击工具(不使用Flash源生的方式,源生的方式是:第二下up时才触发,而这种方式是,第二次down时就触发)
	 * http://blog.youkuaiyun.com/linjf520/article/details/9314095
	 * @author jave.lin
	 * @date 2013-7-2
	 */	
	public class DoubleClickUtil{
		
		private static const DOUBLE_CLICK_INTNERVAL:int = 500;
		
		private static var before_double_click_time:int = -1;
		private static var isDoubleClick:Boolean = false;
		private static var lastObj:InteractiveObject;
		
		public static function registerDoubleClick(obj:InteractiveObject):void{
			obj.addEventListener(MouseEvent.CLICK, onClick, false, int.MAX_VALUE);
			obj.addEventListener(MouseEvent.MOUSE_DOWN, onDown, false, int.MAX_VALUE);
			//			obj.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick, false, int.MAX_VALUE);
			obj.doubleClickEnabled = false;
		}
		
		public static function unRegisterDoubleClick(obj:InteractiveObject):void{
			obj.removeEventListener(MouseEvent.CLICK, onClick, false);
			obj.removeEventListener(MouseEvent.MOUSE_DOWN, onDown, false);
		}
		
		//		private static function onDoubleClick(e:MouseEvent):void{
		//			trace("onDoubleClick");
		//		}
		
		private static function onDown(e:MouseEvent):void{
			//			trace("onDown");
			var timer:int = getTimer();
			if(lastObj == e.currentTarget && before_double_click_time != -1){
				//				trace("minus:" + (timer - before_double_click_time));
				//				trace("can double?:" + ((timer - before_double_click_time) <= DOUBLE_CLICK_INTNERVAL));
				if((timer - before_double_click_time) <= DOUBLE_CLICK_INTNERVAL){
					isDoubleClick = true;
					lastObj.dispatchEvent(new MouseEvent(MouseEvent.DOUBLE_CLICK));
					e.stopPropagation();
					e.stopImmediatePropagation();
					e.preventDefault();
				}else{
					isDoubleClick = false;
				}
				before_double_click_time = -1;
				lastObj = null;
			}else{
				if(before_double_click_time == -1){
					before_double_click_time = timer;
				}
			}
			lastObj = e.currentTarget as InteractiveObject;
		}
		
		private static function onClick(e:MouseEvent):void{
			if(isDoubleClick){
				e.stopImmediatePropagation();
				e.stopPropagation();
				e.preventDefault();
				isDoubleClick = false;
				return;
			}
			//			trace("onClick");
		}
	}
}

内容概要:本文全面解析了无人机专业(如“无人机应用技术”或“无人驾驶航空器系统工程”)的核心学习内容,围绕“会造、能控、善用”三大目标,系统梳理了六大模块:基础理论(数学、物理、工程与计算机基础)、核心技术(硬件研发与软件操控)、行业应用(农业植保、航拍测绘、电力巡检、应急救援、影视航拍)、法规与安全(飞行法规、安全作业、资质认证)、技术实操课程(从基础拆装到综合实战)以及职业素养(团队协作、持续学习、职业规范)。文章还推荐了适合各阶段学习的入门书籍,并构建了“理论&mdash;技术&mdash;应用&mdash;素养”一体化的核心课程体系,突出实践教学与岗位对接。; 适合人群:具备一定理工科基础,对无人机研发、操控或行业应用感兴趣的大中专及本科学生,以及计划从事无人机相关职业的初学者。; 使用场景及目标:①帮助学习者系统掌握无人机专业的知识架构与技能路径;②指导院校或培训机构设计课程体系;③为学生选择发展方向(如农业、测绘、电力等)提供参考;④辅助备考无人机驾驶员合格证及相关行业资质。; 阅读建议:建议结合文中推荐书籍与课程体系分阶段学习,重视实操训练与项目实践,积极参与实习、竞赛与资质认证,以实现从理论到应用的全面转化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值