关于roll_over 和 mouse_over的区别,这篇文章说明的很清楚,http://zengrong.net/post/1105.htm

全文如下:

在MouseEvent中,ROLL_OVER和MOUSE_OVER、ROLL_OUT和MOUSE_OUT是两对比较相似的事件,它们有什么区别呢?AS3语言参考中是这样解释的:

rollOver 事件的目的是简化带有子级的显示对象容器的移开行为的编码。当鼠标进入某个显示对象区域或者从其子级以外的对象进入任何其子级区域时,该显示对象将分派 rollOver 事件。这种行为与 mouseOver 事件的行为不同,每次鼠标进入显示对象容器的任何子对象区域时都会分派此事件,即使鼠标已在显示对象容器的另一个子对象上也是如此。

解释得有些拗口,实际上简单说就是:ROLL_OVER事件无视子对象,只监听根对象的事件。

看了下面演示,就更清楚了。

源码:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
 
[SWF(width=350,height=400)]
public class SimpleSample9 extends Sprite
{
private var _spriteChild:Sprite;
private var _spriteParent:Sprite;
private var _tf:TextField;
private var _line:int=0;
 
public function SimpleSample9()
{
_spriteChild = new Sprite();
_spriteChild.name = 'child';
_spriteChild.graphics.beginFill(0x81ADF0);
_spriteChild.graphics.drawCircle(0, 0, 40);
_spriteChild.graphics.endFill();
 
_spriteParent = new Sprite();
_spriteParent.name = 'parent';
_spriteParent.graphics.beginFill(0x0000ff);
_spriteParent.graphics.drawCircle(0,0, 90);
_spriteParent.graphics.endFill();
 
_spriteParent.addChild(_spriteChild);
addChild(_spriteParent);
_spriteParent.x = stage.stageWidth/2;
_spriteParent.y = _spriteParent.height/2;
 
_tf = new TextField();
_tf.border = true;
_tf.width = stage.stageWidth;
_tf.height = stage.stageHeight-_spriteParent.y-_spriteParent.height/2;
_tf.y = stage.stageHeight - _tf.height;
addChild(_tf);
 
_spriteParent.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler);
_spriteParent.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
_spriteParent.addEventListener(MouseEvent.ROLL_OVER, mouseHandler);
_spriteParent.addEventListener(MouseEvent.ROLL_OUT, mouseHandler);
}
 
private function mouseHandler(evt:MouseEvent):void
{
_line++;
var __ctName:String = evt.currentTarget.name;
var __tName:String = evt.target.name;
var __rName:String = evt.relatedObject == null ? 'null' : evt.relatedObject.name;
_tf.text = _line.toString()+','+(evt.type+',currentTarget:'+__ctName+',target:'+__tName+',relatedObject:'+__rName+'\n') + _tf.text;
}
}
}

我自己的一点理解:

当鼠标在 大圆parent的范围内 移到 小圆child中 时,

大圆parent抛出mouse_out事件,小圆childe抛出mouse_over事件,而小圆抛出的事件通过冒泡又被大圆截获到!

大圆抛出的mouse_out事件的relatedObject的值是child

小圆抛出的mouse_over时间的relatedObject的值是parent

而如果只监听了roll_over事件时,当鼠标在 在 大圆parent的范围内 移到 小圆child中 时,是没有事件抛出的。

roll_over比mouse_over先抛出

mouse_out又比roll_out先抛出

mouseevent tips的更多相关文章

  1. Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子

    原文 http://blog.minidx.com/2008/11/10/1616.html 接下来的例子演示了Flex中如何通过showAllDataTips属性,使鼠标移动到图表时显示所有的数据T ...

  2. java.awt.event.MouseEvent鼠标事件的定义和使用 以及 Java Swing-JTextArea的使用

    最近发现一个CSDN大佬写的Java-Swing全部组件的介绍:Java Swing 图形界面开发(目录) JTextArea 文本区域.JTextArea 用来编辑多行的文本.JTextArea 除 ...

  3. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  4. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...

  5. layer.js中layer.tips

    <script src="~/Content/js/layer/layer.js"></script> layer.tips('名称不能为空', '#pro ...

  6. HTML 最简单的tips 怎么支持指定DIV显示提示信息

    <body> <style type="text/css"> a.link{position:relative;} a.link div.tips{ bor ...

  7. CSS:CSS使用Tips

    Css是前端开发中效果展现的主要部分之一,良好的Css书写习惯可以为实际的项目开发提高效率,也可以为实现良好的团队合作提供保证. 一般新手在使用Css的时候经常会犯一些错误,出现一些不经意的漏洞,如果 ...

  8. 【读书笔记】100个Switf必备tips

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1.Selector 在Swi ...

  9. 【转】40个良好用户界面Tips

    一个良好的用户界面应具有高转换率,并且易于使用.但要用户体验良好并不容易做到,下面我们整理了40个良好用户界面Tips,希望能对你有帮助! 1 尽量使用单列而不是多列布局 单列布局能够让对全局有更好的 ...

随机推荐

  1. sql server 函数

    1.Fun_Split 分割字符串,形成返回表 CREATE FUNCTION [dbo].[Fun_Split] ( @Items VARCHAR(MAX), @SplitStr VARCHAR(M ...

  2. error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用 1>GEARS.obj : er

    转: http://blog.csdn.net/bill_ming/article/details/8150111 opengl的高级菜鸟问题 看了一本书<OpenGL三维图形系统开发与应用技术 ...

  3. UVA 557 Burger 排列组合递推

    When Mr. and Mrs. Clinton's twin sons Ben and Bill had their tenth birthday, the party was held at t ...

  4. hdu 4559 涂色游戏(对SG函数的深入理解,推导打SG表)

    提议分析: 1 <= N <= 4747 很明显应该不会有规律的,打表发现真没有 按题意应该分成两种情况考虑,然后求其异或(SG函数性质) (1)找出单独的一个(一列中只有一个) (2)找 ...

  5. ibatis2.3中#和$符号的区别(转)

    在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如: select * from ...

  6. 窗口截图(可指定HWND窗口句柄)(三篇文章)

    BOOL SaveHwndToBmpFile(HWND hWnd, LPCTSTR lpszPath) { HWND hDesktop = ::GetDesktopWindow(); ASSERT(h ...

  7. iOS中检测硬件和传感器

    首先要知道,你需要查看所需的硬件或传感器是否存在,而不是假设设备有哪些功能.举个例子,你不能假设只有iPhone才有麦克风,而应该使用API来查看麦克风是否存在.下面这段代码的第一个优势在于,它能自动 ...

  8. JVM垃圾回收机制总结(6) :透视Java的GC特性

    1. 使用 System.gc() 可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求 Java的垃圾回收. 在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式: ...

  9. Oracle ->> 变量赋值 Demo

    刚学Oracle,学习学习别人的代码.这段代码时从下面的博文中摘取的:http://www.cnblogs.com/mq0036/p/4155774.html declare l_dept ; cur ...

  10. Docker基础技术:AUFS

    AUFS是一种Union File System,所谓UnionFS就是把不同物理位置的目录合并mount到同一个目录中.UnionFS的一个最主要的应用是,把一张CD/DVD和一个硬盘目录给联合 m ...