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

Action Script实现控件拖动

    博客分类:
  • Flex
阅读更多
保存下来,以便日后使用

package {
	import flash.display.DisplayObject;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.filters.DropShadowFilter;
	import flash.geom.Point;
	import flash.text.TextField;
	
	[SWF(width="800", height="600")]
	public class example extends Sprite
	{
		private var _red:Sprite;
		private var _green:Sprite;
		private var _blue:Sprite;
		private var _white:Sprite;
		// 保存被拖动对象原始坐标
		private var startingLocation:Point;
		
		public function example()
		{
			/*---------- 拖动 ----------*/
			createRectangles( );
			addEventListeners( );
		}
		
				
		private function createRectangles( ):void {
			_red = new Sprite( );
			_red.graphics.beginFill( 0xFF0000 );
			_red.graphics.drawRect( 0, 10, 10, 10 );
			_red.graphics.endFill( );
			_green = new Sprite( )
			_green.graphics.beginFill( 0x00FF00 );
			_green.graphics.drawRect( 0, 30, 10, 10 );
			_green.graphics.endFill( );
			_blue = new Sprite( );
			_blue.graphics.beginFill( 0x0000FF );
			_blue.graphics.drawRect( 0, 50, 10, 10 );
			_blue.graphics.endFill( );
			_white = new Sprite( );
			_white.graphics.beginFill( 0xFFFFFF );
			_white.graphics.drawRect( 20, 10, 50, 50 );
			_white.graphics.endFill( );
			addChild( _red );
			addChild( _green );
			addChild( _blue );
			addChild( _white );
		}
		
		private function addEventListeners( ):void {
			_red.addEventListener( MouseEvent.MOUSE_DOWN, pickup );
			_red.addEventListener( MouseEvent.MOUSE_UP, place );
			_green.addEventListener( MouseEvent.MOUSE_DOWN, pickup );
			_green.addEventListener( MouseEvent.MOUSE_UP, place );
			_blue.addEventListener( MouseEvent.MOUSE_DOWN, pickup );
			_blue.addEventListener( MouseEvent.MOUSE_UP, place );
		}
		
		public function pickup( event:MouseEvent ):void {
			// 保存原始坐标以便回位
			startingLocation = new Point( );
			startingLocation.x = event.target.x;
			startingLocation.y = event.target.y;
			//开始拖动,给被拖动对象加上阴影
			event.target.startDrag( );
			event.target.filters = [ new DropShadowFilter( ) ];
			// 把被拖动对象显示在最前面
			setChildIndex( DisplayObject( event.target ), numChildren - 1 );
		}
		
		public function place( event:MouseEvent ):void {
			// 停止拖动,取消阴影效果
			event.target.stopDrag( );
			event.target.filters = null;
			// 检测是否已经被拖动到白色矩形上
			if ( event.target.dropTarget == _white ) {
				// 设置颜色
				var color:uint;
				switch ( event.target ) {
					case _red: color = 0xFF0000; break;
					case _green: color = 0x00FF00; break;
					case _blue: color = 0x0000FF; break;
				}
				_white.graphics.clear( );
				_white.graphics.beginFill( color );
				_white.graphics.drawRect( 20, 10, 50, 50 );
				_white.graphics.endFill( );
			}
			// 把被拖动对象放回原位
			event.target.x = startingLocation.x;
			event.target.y = startingLocation.y;
		}

	}
}

分享到:
评论

相关推荐

    利用Jquery的cropper插件实现拖动层动态头剪切(裁剪头像)图片

    "利用Jquery的cropper插件实现拖动层动态头剪切(裁剪头像)图片" 在本篇文章中,我们将讨论如何使用Jquery的cropper插件来实现拖动层动态头剪切(裁剪头像)图片。首先,我们需要了解Jquery这个类库的强大功能和方便...

    C#调用web做窗体界面

    1. **添加WebBrowser控件**:首先,在Windows Form项目中,通过工具箱中的WebBrowser控件拖拽到窗体上。 2. **配置WebBrowser控件**:设置控件的基本属性,如大小、位置等,并加载需要显示的HTML内容。 3. **实现...

    在VC中使用 Flash 美化你的程序.doc

    - 使用Action Script中的`FSCommand(command, args);`函数向程序发送消息。 - 示例:用户点击按钮时发送`FSCommand("bt", "bt1");`或`FSCommand("bt", "bt2");`。 **2. 接收和处理FSCommand消息** - **处理方法*...

    【JavaScript源代码】Bootstrap FileInput实现图片上传功能.docx

    dropZoneEnabled: false, // 是否显示拖拽区域 maxFileCount: 5, // 允许同时上传的最大文件个数 enctype: 'multipart/form-data', validateInitialCount: true, layoutTemplates: { actionUpload: '' }, ...

    文件上传demo

    为了实现文件拖拽和多选功能,我们可以利用HTML5的`<input type="file">`的新特性。通过设置`multiple`属性,用户可以一次选择多个文件;通过监听`drop`事件,我们可以处理文件拖放上传: ```html (event)" ...

    sikuli相关jar包

    - **Sikuli Script**:Sikuli的编程语言,基于Python,用于编写自动化脚本。 - **Screen**: 表示屏幕对象,可以用来搜索和定位屏幕上的图像。 - **Region**: 屏幕的一个区域,可以限制搜索范围。 - **Find/Find...

    jquery mobile快速入门

    4. **触摸事件**:jQuery Mobile 包含了对触摸事件的支持,如滑动、拖拽等,使得开发移动应用更加简单。 5. **可定制性**:jQuery Mobile 提供了多种主题样式,开发者可以根据自己的需求选择或自定义样式。 #### 三...

    webdriver实用指南python版本.pdf

    - **Action链操作:** 对于复杂的用户交互行为,如拖拽、鼠标悬停等,可以使用ActionChains类来实现。 - **示例代码:** ```python from selenium.webdriver.common.action_chains import ActionChains element...

    易语言程序免安装版下载

     为实现静态编译,易语言编译器、核心支持库、集成开发环境(IDE)等均有重大更新,支持库开发架框有扩展性调整,绝大多数官方支持库都已针对静态编译完成自身改造并提供静态库。  目前绝大多数官方支持库均已支持...

Global site tag (gtag.js) - Google Analytics