`

【as3手册小记】用鼠标跟随方法来创建拖动效果

    博客分类:
  • flex
阅读更多

// 此代码使用鼠标跟随
// 技术创建拖放交互组件。
// 圆和正方形是 DisplayObject (例如 MovieClip 或 Sprite
// 实例)。
import flash.display.DisplayObject;
import flash.events.MouseEvent;
var offsetX:Number;
var offsetY:Number;
var draggedObject:DisplayObject;
// 按下鼠标按键时会调用此函数。
function startDragging(event:MouseEvent):void
{
// 记住正在拖动的对象
draggedObject = DisplayObject(event.target);
// 记录按下鼠标按键时光标的位置
// 与按下鼠标按键时拖动的对象的 x, y 坐标
// 之间的差异(偏移量)。
offsetX = event.stageX - draggedObject.x;
offsetY = event.stageY - draggedObject.y;
// 将所选对象移到显示列表的顶部
stage.addChild(draggedObject);
// 通知 Flash Player 开始侦听 mouseMove 事件。
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragObject);
}
// 松开鼠标按键时会调用此函数。
function stopDragging(event:MouseEvent):void
{
// 通知 Flash Player 停止侦听 mouseMove 事件。
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragObject);
}
// 只要按下鼠标按键,
// 每次移动鼠标时都会调用此函数。
function dragObject(event:MouseEvent):void
{
// 将拖动的对象移到光标的位置,从而保持
// 光标的位置和拖动的对象的位置
// 之间的偏移量。
draggedObject.x = event.stageX - offsetX;
draggedObject.y = event.stageY - offsetY;
// 指示 Flash Player 在此事件后刷新屏幕。
event.updateAfterEvent();
}
circle.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
circle.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
square.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
square.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
 
分享到:
评论

相关推荐

    d3js 学习小记

    具体实现时,可以使用D3.js的`d3.scale.linear()`方法创建线性比例对象: ```javascript var xLinear = d3.scale.linear() .domain([1, 30]) // 输入域 .range([0, 800]); // 输出范围 // 获取18号这一天的股票...

    Sqlite数据库sqlite3命令小记.txt

    ### Sqlite数据库sqlite3命令小记 #### 一、引言 SQLite 是一款轻量级的数据库管理系统,它被广泛应用于各种应用场景中,特别是在移动设备和嵌入式系统上。SQLite 不仅支持标准的 SQL 语法,还提供了一系列实用的...

    Sublime Text3 安装到使用个人小记

    Sublime Text3 安装到使用个人小记

    Python3语法小记字典dictionary.docx

    - **使用fromkeys()方法创建**:此方法可以创建一个所有键相同的字典,键为指定的序列,值则由第二个参数指定(默认为None)。例如:`dict.fromkeys(['name', 'age'], 'default')`将返回`{'name': 'default', 'age':...

    vuex使用方法,小记总结

    Vuex 使用方法总结 Vuex 是一个专门为 Vue.js 设计的状态管理器,用于管理应用程序的状态。下面是 Vuex 的使用方法总结: State Vuex 的状态管理是通过 State 来实现的。State 是一个对象,存储了应用程序的所有...

    linux+java+python3+numpy+stl的3d打印小记

    在本项目中,我们将探索如何利用Linux操作系统,Java编程语言,Python3,NumPy库以及STL文件格式来实现3D打印技术。这是一个跨学科的综合应用,涉及到计算机科学、软件开发以及制造技术。 首先,Linux是开源的操作...

    android开发小记

    在“android开发小记”这个主题中,我们可以深入探讨Android应用程序开发的相关知识,特别是通过查看提供的压缩文件中的代码示例。这些文件名如lesson_8_code.zip至lesson_20_codel.zip,以及不同的Mp3Player版本,...

    源代码·Qt/C++使用小记9

    Qt/C++使用小记9【使用UDP创建连接发送消息/传输单个文件】

    asp.net Jmail使用小记

    如果需要添加附件,可以使用`jMail.AddAttachment()`方法。同时,根据实际环境,可能需要调整SMTP服务器的相关配置。 "Jmail组件使用小记.doc"文件很可能包含了更详尽的使用教程和注意事项,包括如何处理错误、如何...

    H3C MIB转py小记.txt

    H3C MIB转py小记.txt

    rman使用小记.doc

    《RMAN使用小记》 Recovery Manager(RMAN)是Oracle数据库系统中用于数据恢复和备份的关键工具。本文将详细介绍RMAN的一些核心特性和使用方法,帮助读者理解和掌握RMAN的基本操作。 首先,了解RMAN的三个重要特性...

    java小记.rar

    Servlet通过继承HttpServlet类并覆盖doGet或doPost等方法来实现动态网页的生成。例如,你可以看到作者可能记录了如何处理HTTP请求、响应头和体的设置,以及如何使用Servlet进行会话管理。 JSP(Java Server Pages)...

    Python 3 语法小记(一)入门 (print 函数用法总结).docx

    Python 3 语法小记(一)入门 (print 函数用法总结) Python 是一种广泛使用的高级编程语言, Python 语法小记旨在为刚刚开始接触 Python 的程序员提供重要函数的记忆,保证学习和开发过程进展顺利。本文将总结 ...

    Linux boost库安装、编译问题小记

    环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed ...小记一下。以备以后参考。  boost 库做得真好。在windows 平台, linux 平台下编译都很顺利。hp aCC 也宣称对 boost 1.35 完全支持 。  全部编译是很痛苦的过程

    C++编程小记,经典收藏

    - **注意事项**:如果派生类的方法名称与基类的虚方法不同,则编译器将报错。 - **`final`关键字**: - 用于标记虚函数或整个类不可被进一步覆盖或继承。 - **示例**: ```cpp class E { public: virtual ...

    阿里大数据分析平台使用小记

    阿里大数据分析平台使用小记 阿里大数据分析平台是阿里巴巴集团旗下的数据分析平台,提供了大数据处理、存储和分析的能力。该平台主要应用于天池大数据竞赛平台,提供了一些使用经验和教程,但不是完整的开发使用...

    大方法的执行性能与调优过程小记1

    此外,JVM还有其他优化手段,比如方法内联,可以提高代码执行效率,但这需要谨慎使用,因为过度的内联可能导致方法体过大,反而影响性能。 总结来说,大方法的性能问题主要是由于JVM的JIT编译策略限制。为了避免...

    随笔小记.doc

    随笔小记.doc

    xstream使用小记

    《Xstream使用小记》 Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行...

Global site tag (gtag.js) - Google Analytics