MouseOut/MouseOver/RollOut/RollOver事件比照
最近要做一个Flex的PropertyGrid,展示属性的方式并没有采用传统的PropertyGird的展示方法,但是主要的用户行为还是需要与传统的PropertyGrid一致的。
PropertyGrid分为两种状态"悬浮"和"内嵌"。状态为悬浮时,鼠标移动到Property MINI选项卡的时候,弹出PropertyGrid主窗体,隐藏MINI选项卡;鼠标移出PropertyGrid主窗体的时候,该窗口关闭,同时显示MINI选项卡。
很习惯的选择了MouseOut事件,即给PropertyGird注册MouseOut事件,当鼠标移出时关闭PropertyGrid。但是经过测试发现,使用该事件时,即使鼠标未移出PropertyGrid,窗口也会关闭。最后不得不写个程序测试下,结果发现,如果PropertyGrid里面含有其他控件,鼠标在这些控件上移动时也会触发MouseOut和MouseOver事件,造成之前逻辑错误。
如果采用RollOut和RollOver事件则不会出现逻辑问题。
区别在于:RollOver和RollOut事件只有鼠标移入移出监听该事件的组件时才会触发,而移入移出其子组件的时候不会触发。MouseOver和MouseOut事件是鼠标移入移出监听该事件的组件以及子组件的时候时触发。
测试代码请见Flash View Source。
测试结果请见Flash。鼠标在面板中移动,DataGrid会显示事件信息。
Flash 链接:https://files.cnblogs.com/jingtao/OnMouseOutTest.rar
原创文章,转载请注明出处!
All CopyRight Reserved !
QQ:307073463
Email:jingtaodeemail@qq.com
MSN:sunjingtao@live.com
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名孙镜涛(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言。