`
hacker47
  • 浏览: 336279 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AS3实例:框选对象

阅读更多








代码:


package  
{
	import com.duowan.util.DrawUtil;
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	
	/**
	 * ...
	 * @author hacker47
	 */
	public class SelectMain extends Sprite 
	{
		private var p0:Point = new Point();
		private var drawWidth:Number;
		private var drawHeight:Number;
		
		public function SelectMain() 
		{
			stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
		}
		
		private function onDown(e:MouseEvent):void {
			p0.x=mouseX;
			p0.y= mouseY;
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
			stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
		}
		
		private function onMove(e:MouseEvent):void {
			drawWidth = mouseX - p0.x;
			drawHeight = mouseY -p0.y;
			graphics.clear();
			DrawUtil.drawRect(graphics, p0, drawWidth, drawHeight);
		}
		
		private function onUp(e:MouseEvent):void {
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
			checkRange();
		}
		
		private function checkRange():void {
			if (drawWidth < 0) {
				drawWidth = -drawWidth;
				p0.x -= drawWidth;
			}
			
			if (drawHeight < 0) {
				drawHeight = -drawHeight;
				p0.y -= drawHeight;
			}
			
			for (var i:int = 0; i < this.numChildren; i++ ) {
				var d:DisplayObject = getChildAt(i);
				var rect:Rectangle = d.getRect(this);
				if (rect.x > p0.x && rect.x < (p0.x + drawWidth)) {
					if (rect.y > p0.y && rect.y < (p0.y + drawHeight)) {
						selectedDraw(rect);
					}
				}
				
			}
		}
		
		private function selectedDraw(rect:Rectangle):void {
			graphics.lineStyle(2, 0x336699);
			graphics.drawRect(rect.x, rect.y, rect.width, rect.height);
		}

	}

}



  • 大小: 32.1 KB
  • 大小: 41.7 KB
0
0
分享到:
评论
3 楼 letian003 2014-04-23  
楼主怎么没把那个包一起放出来呢
2 楼 letian003 2014-04-23  
楼主怎么没把那个把一起放出来呢
1 楼 Mr桀骜不驯 2013-05-19  
我想请教一下,当你框选之后,怎么样可以实现鼠标点击其他地方(非选中区域),选中的就会被取消选中呢?求赐教

相关推荐

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例026 使用as关键字将对象转换为指定类型 32 2.4 流程控制语句的使用 34 实例027 小明去学校和医院分别要走哪条路 34 实例028 利用条件语句判断用户登录身份 35 实例029 判断指定月份属于哪个季节 36 实例030 使用...

    基于javascript实现checkbox复选框实例代码

    本文实例讲解了javascript实现checkbox复选框的详细代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=...

    jQuery完全实例.rar

    context (Element, jQuery) : (可选) 作为待查找的 DOM 元素集、文档或 jQuery 对象。 示例 找到所有 p 元素,并且这些元素都必须是 div 元素的子元素。 HTML 代码: &lt;p&gt;one&lt;/p&gt; &lt;div&gt;&lt;p&gt;two&lt;/p&gt;&lt;/div&gt; &lt;p&gt;three...

    vc++ 开发实例源码包

    3:可以在不下载ZIP.RAR.ISO文件的情况下查看文件里面的目录文件. 4:支持多语言. 5:操作综合其它软件. 6:自定义快捷键. 7:在IE工具栏上加按钮,可以直接拖动连接到按钮上下载. 8:注册采用激活方式. 9:采用Messenger的...

    javascript动态添加checkbox复选框的方法

    本文实例为大家介绍了javascript如何动态添加checkbox复选框: 在实际应用中可能需要动态的添加复选框,下面就简单介绍一下如何实现此效果。 单纯的创建一个复选框是很容易的,代码如下: var oCheckbox=document....

    flash shiti

    框选式 C. 鼠标式 D. A和B都正确 27.以下不是符号Symbol可选的类型的是: A. Moeie Clip B. Button C. Effect D. Graphic 28.Flash查看(View)菜单中,Go To→Next表示? A. 打开当前作品的第一个场景 B...

    hibernate 框架详解

    3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. ...

    Microsoft SQL Server 2005 Express Edition SP3

    在“安全设置”下,选中所有复选框。 验证是否已将“DTC 登录帐户”名称设置为 NT AUTHORITY\NetworkService。 [顶部] 3.6 默认情况下不安装示例数据库 默认情况下,不在 SQL Server Express 中安装示例数据库...

    C++MFC教程

    数组中每一个元素为CString对象的实例。下面介绍几个成员函数: Add 增加CString RemoveAt 删除指定位置CString对象 RemoveAll 删除数组中所有CString对象 GetAt 得到指定位置的CString对象 SetAt 修改指定位置...

    spring.net中文手册在线版

    23.4.3.bin目录 - 可选 23.5.自定义或扩展 23.5.1. .config文件 第五部分. 与Visual Studio.NET集成 第二十四章. 与Visual Studio.NET集成 24.1.XML编辑与验证 24.2.XML Schema的版本 24.3.集成API文档 第六部分. ...

    大名鼎鼎SWFUpload- Flash+JS 上传

     type : string, // The file type as reported by the client operating system  creationdate : Date, // The date the file was created  modificationdate : Date, // The date the file was last modified...

    VB程序设计及应用

    数据库、对象的链接和嵌入、多媒体控件以及常用的 ActiveX 控件的应用,最后介绍了打字练习、画板、学生成绩管理系统等应用程序实例。本书配有大量的实例和测试题,并配有 CAI课件、电子教案。本书由浅入深、通俗...

    vfp6.0系统免费下载

    问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    对于一个 Java EE 应用来说,通常这些服务对象都是被容器管理的(例如,Spring 容器或 EJB 容器),更合适的方法是查找该服务对象而非直接实例化。因此,需要告诉 BlazeDS 通过 Factory 来查找指定的 FlexService ...

    PT80-NEAT开发指南v1.1

    NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................

    VB课程设计俄罗斯方块

    m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0 m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1 将它的形状编号为0和1,在后面方便调用,其他的方块造型同样的方法。 2.1.3俄罗斯方块的旋转 ...

    python flask框架实现传数据到js的方法分析

    本文实例讲述了python flask框架实现传数据到js的方法。分享给大家供大家参考,具体如下: 首先要清楚后台和前端交互所采用的数据格式。 一般选JSON,因为和js完美贴合。 后台返回的数据进行序列化 在/...

Global site tag (gtag.js) - Google Analytics