FLEX 中关于组件的MouseX/Y和组件事件的LocalX/Y的区别
来源:互联网 发布:无本网络暴利项目 编辑:程序博客网 时间:2024/06/06 01:35
目的:
在Group容器中实现子容器gp1及其gp1内部子组件随gp1组件的拖动效果。
实现:
1.初始化时,注册鼠标按下事件:
public function onInit():void{
...gp1.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);...}
2.鼠标按下响应函数:
public function onMouseDown(e:MouseEvent):void{//oldEventX = e.localX;//oldEventY = e.localY;oldEventX = gp1.mouseX;oldEventY = gp1.mouseY;gp1.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);gp1.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);}
3.随着鼠标移动而移动组件:
public function onMouseMove(e:MouseEvent):void{if(e.localX != 0 && e.localX!= 0){//offSetX = e.localX -oldEventX;//offSetY = e.localY -oldEventY;offSetX = gp1.mouseX -oldEventX;offSetY = gp1.mouseY -oldEventY;gp1.x += offSetX;gp1.y += offSetY;}}
4.鼠标抬起时,注销移动和抬起事件:
public function onMouseUp(e:MouseEvent):void{gp1.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);gp1.removeEventListener(MouseEvent.MOUSE_UP,onMouseUp);}
效果:
到此,按照上面的步骤(使用绿色部分代码,注释红色代码),得到的效果为:在移动组件的过程中,有时会出现得到的e.localX/Y突然变得特别大的情况,从而组件移动到屏幕外面的情况;
原因:
每次在移动过程中事件e.target不唯一,不一定是gp1,有时为gp1中的子组件,所以e.localX/Y不唯一。
查看Flex帮助:
mx.core.UIComponent.mouseX():Number
- [只读] 指示此鼠标或用户输入设备位置的 x 坐标,以像素为单位。
flash.events.MouseEvent.localX():Number
- 事件发生点相对于所属 Sprite 的水平坐标。
- [只读] 事件发生点在全局舞台坐标中的水平坐标。当设置
localX
属性时会计算此属性。
flash.events.MouseEvent.stageX():Number
- FLEX 中关于组件的MouseX/Y和组件事件的LocalX/Y的区别
- localX mouseX stageX 的区别
- mouseX、localX、statgeX的异同点
- 关于X>Y和X Y的区别请看下面的html实例:
- obj-y +=和obj-y :=的区别
- Android scrollBy(x,y)和scrollTo(x,y)的区别
- 一张图看懂TranslationX,Y和X,Y的区别
- Flex自定义事件和组件的使用方法
- Flex自定义事件和组件的使用方法
- 关于对clientX(Y)/pageX(Y)/screenX(Y)的认识
- Java中x+=y和x=x+y两种实现的区别
- 关于Flex 中tree组件的使用
- 四极管:在menuconfig中选择m和 y的区别
- 在menuconfig中选择m和 y的区别
- ObjectAnimator中View.Y和View.TRANSLATION_Y的区别
- ObjectAnimator中View.Y和View.TRANSLATION_Y的区别
- 在menuconfig中选择m和 y的区别
- oracle中exp命令row=y和full=y,ignore=y的意思
- 如何在网站内 运行 JS 代码
- 原来OneNote的文字识别功能如此强大
- Change SID on Oracle
- 可配置BOM组件特性查询
- 关于变量赋值和Box
- FLEX 中关于组件的MouseX/Y和组件事件的LocalX/Y的区别
- windows程序设计 第五章笔记 GDI(1)
- C++一些资源
- JVM工作原理和特点
- Google推出新的移动广告形式,地理位置将影响搜索广告排名
- OVERLAPPED I/O
- xcode4.2下真机调试iphone 3g的问题
- Control character in cookie value, consider BASE64 encoding your value 异常
- 向wince内核添加用户程序