保存下来,以便日后使用
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这个类库的强大功能和方便...
1. **添加WebBrowser控件**:首先,在Windows Form项目中,通过工具箱中的WebBrowser控件拖拽到窗体上。 2. **配置WebBrowser控件**:设置控件的基本属性,如大小、位置等,并加载需要显示的HTML内容。 3. **实现...
- 使用Action Script中的`FSCommand(command, args);`函数向程序发送消息。 - 示例:用户点击按钮时发送`FSCommand("bt", "bt1");`或`FSCommand("bt", "bt2");`。 **2. 接收和处理FSCommand消息** - **处理方法*...
dropZoneEnabled: false, // 是否显示拖拽区域 maxFileCount: 5, // 允许同时上传的最大文件个数 enctype: 'multipart/form-data', validateInitialCount: true, layoutTemplates: { actionUpload: '' }, ...
为了实现文件拖拽和多选功能,我们可以利用HTML5的`<input type="file">`的新特性。通过设置`multiple`属性,用户可以一次选择多个文件;通过监听`drop`事件,我们可以处理文件拖放上传: ```html (event)" ...
- **Sikuli Script**:Sikuli的编程语言,基于Python,用于编写自动化脚本。 - **Screen**: 表示屏幕对象,可以用来搜索和定位屏幕上的图像。 - **Region**: 屏幕的一个区域,可以限制搜索范围。 - **Find/Find...
4. **触摸事件**:jQuery Mobile 包含了对触摸事件的支持,如滑动、拖拽等,使得开发移动应用更加简单。 5. **可定制性**:jQuery Mobile 提供了多种主题样式,开发者可以根据自己的需求选择或自定义样式。 #### 三...
- **Action链操作:** 对于复杂的用户交互行为,如拖拽、鼠标悬停等,可以使用ActionChains类来实现。 - **示例代码:** ```python from selenium.webdriver.common.action_chains import ActionChains element...
为实现静态编译,易语言编译器、核心支持库、集成开发环境(IDE)等均有重大更新,支持库开发架框有扩展性调整,绝大多数官方支持库都已针对静态编译完成自身改造并提供静态库。 目前绝大多数官方支持库均已支持...